cell是matlab中的一种数据类型,用大括号定义,括号里可以是任意类型的数据或矩阵。
关于cell的创建:
1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}"{}"
2.使用cell创建cell,C= {C1 C2},这里C1和C2都是cell类型,直接把C1
C2作为一个cell得到的C3是一个1x2的cell数组;使用C3 = [C1
C2],是使用C1和C2的内容来创建cell数组
3.使用cell函数,A=cell(2,2),创建一个空的2x2的cell矩阵.
关于cell的访问:
1.X = C(s)使用这种"()"形式的返回的是cell类型
2.X = C{s}使用这种"{}"形式的返回的是cell中的内容
3.其他的基本上与通常的数组.矩阵访问一样了
4.A{1,1}(2,3:end)访问的是A中的第一个cell里面内容的第2行的第三个元素以后的所有元素
5.A{1,3}.name访问的是A中的A{1,3}cell里面结构的name值
6.cell的图形化显示使用命令cellplot(A)即可
如
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,上面两句话只不过是对这同一个元素的两个成员进行赋值而已。
实际上我们也可以自己定义一个结构变量,比如
a.one=[1;2];
a.two='hello';
a就是一个结构型的变量,它有两个成员,分别叫one和two。但请记住,a是一个变量,不是两个变量