a{1,1}='cellclass';
a{1,2}=[1 2 2];
a{2,1}=['a','b','c'];
a{2,2}=[9 5 6];
>> a{1,1}
ans =
cellclass
>> a{1,2}
ans =
1 2 2
>> a{2,:}
ans =
abc
ans =
9 5 6
>> b=a{1,1}
b =
cellclass
他也是个数组,跟平常的数组 *** 作相似,注意用花括号 我也知道这么多 不知道不敢乱说A(i)应该A{i}才吧 —————————————————————— cellmatlab种数据类型用括号定义括号任意类型数据或矩阵 B={[一;二]} 定义cell型变量B面保存矩阵[一;二] 要引用面数据要括号写应标即 B{一} 面我给B再加元素我定义 B(二)={'hello'} 利用引用定义 B{二}='hello' 第二种比第种更便所更用 B两元素B(一){[一;二]}B(二){'hello'}每元素都cell型(注意B{一}、B{二}区别B{一}[一;二]B{二}'hello') cell函数造元素cell类型矩阵 A=cell(一00,一)造一00行一列cell矩阵每元素都没 A{i}flag=-一; A{i}status=zeros(一,一三); 始定义每元素数据看每cell保存都结构型数据 ———————————————————————————— A{i}flag=-一; A{i}status=zeros(一,一三); 实际并A{i}储存两元素储存结构型数据 matlab共六种数据类型别数值、字符、逻辑、结构、细胞、类 其细胞cell类型数据 A{i}flag=-一; A{i}status=zeros(一,一三); 实际A{i}储存结构类型数据两员名flag、名status面两句同元素两员进行赋值已 实际我自定义结构变量比 aone=[一;二]; atwo='hello'; a结构型变量两员别叫onetwo请记住a变量两变
cell函数在本程序段中起到了定义一个数组的作用。
程序功能:第一句A=cell(100,1),意思是定义一个100X1的数组A
“for ……end”是循环结构,循环体中包含了两个功能,一是使全局变量flag减1,二是使A的状态值返回到一个double类型的1X13的数组。当全局变量flag小于零时循环终止。
下面举例说明cell函数的一般使用情形:
1,首先用cell函数来声明一个新的单元阵列。
2,以声明1x3形式的单元阵列v为例,输入命令行v={B sum(B) prod(prod(B))}
这里需要补充说明B是我们预先声明的一个向量。
3,上一步中的prod的功能是求积运算,所以当向量B的数据类型不同时得到的结果也是不同的。
若B为一个一维向量(或数组),则一次prod运算后得到的是所有元素的乘积,二次prod运算则会将结果还原出来。
若B为矩阵,那么一次prod运算后,对矩阵各列分别求积后得到一个新的数组C,这个数组即为输出结果,二次prod运算后,则将数组C中所有元素求积,然后输出这个积。
以上是cell函数的具体作用。
扩展资料:
用cell函数创建细胞数组,创建的数组为空细胞。cell函数创建空细胞数组的主要目的是为数组预先分配连续的存储空间,节约内存占用,提高执行效率。
从细胞数组中读取数据,可保存为一个标准的数组或一个新的单元数组,或取出数组进行计算。细胞数组中数据的访问,可通过细胞内容的下标进行,用细胞数组名加大括号{}。大括号中数值表示细胞的下标。
细胞型数据的定义方法:
1,直接赋值定义法
2,空间定义法
参考资料来源:
百度百科-cell
num2cell的作用是把数值数组转换为cell数组。
最基本的用法是把数值数组的每个元素作为cell数组的元素,得到一个和原数组维度完全相同的cell数组,例如
>> A=magic(3)A =
8 1 6
3 5 7
4 9 2
>> c=num2cell(A)
c =
[8] [1] [6]
[3] [5] [7]
[4] [9] [2]
也可以指定一个或多个维数,该种情况下将把指定维数的多个元素作为cell数组的一个元素,从而返回一个通常比原数值数组维数低的cell数组,例如
>> c=num2cell(A,2)c =
[1x3 double]
[1x3 double]
[1x3 double]
上面的例子把数组A第2维的所有元素(即一行)作为cell数组的一个元素,从而得到一个3x1的测cell数组。
和num2cell功能有些类似的还有一个mat2cell函数,具体介绍请查看文档:
doc mat2cellmatlab是不支持cell类型的,你可以把cell转化成数组在写入excelUnsupported MATLAB Types
You cannot pass the following MATLAB types to NET methods:
Structure arrays
Cell arrays
Sparse arrays
Complex numberscell是matlab中的一种数据类型,用大括号定义,括号里可以是任意类型的数据或矩阵。
如
B={[1;2]}
这就定义了一个cell型的变量B,里面保存的是一个矩阵[1;2]
要引用里面的数据只要在大括号里写上对应的下标即可,如
B{1}
下面我们给B再加个元素,我们可以这样定义
B(2)={'hello'}
也可以利用引用的方法定义
B{2}='hello'
第二种方法比第一种方法更方便所以更常用。
这样B就有两个元素了,B(1)是{[1;2]},B(2)是{'hello'},每个元素都是cell型的(注意和B{1}、B{2}的区别,B{1}是[1;2],B{2}是'hello')
cell函数是造元素为cell类型的矩阵
你这里A=cell(100,1)就是造了100行1列的cell矩阵。当然此时每个元素里什么都还没有。
然后
A{i}flag=-1;
A{i}status=zeros(1,13);
就开始定义每个元素里的数据了,可以看到每个cell里保存的都是结构型数据。
————————————————————————————
A{i}flag=-1;
A{i}status=zeros(1,13);
实际上并不是在A{i}中储存了两个元素,而是储存了一个结构型数据。
matlab中共有六种数据类型,分别为数值、字符、逻辑、结构、细胞、类。
其中细胞就是你这里的cell类型数据。
A{i}flag=-1;
A{i}status=zeros(1,13);
实际上是在A{i}中储存了一个结构类型数据,它有两个成员,一个名为flag、一个名为status,上面两句话只不过是对这同一个元素的两个成员进行赋值而已。
实际上我们也可以自己定义一个结构变量,比如
aone=[1;2];
atwo='hello';
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)