MATLAB 的 cell,称单元格数组 or 元胞数组:使用频率特别高,甚至比 struct 结构体还高。html
MATLAB文档给出的 cell 官方定义:编程
A cell array is a collection of containers called cells in which you can store different types of data.数组
精华之处就是在能够存储不一样类型的数据.能够是Matlab的类型或者自定义的类型.数据结构
一个元胞数组的一个单元可能包含:一个实数数组 or 字符型数组 or 复数数组 or 元胞数组(嵌套啦)函数
1 元胞数组的建立spa
建立方法有 3 种:直接赋值法、利用函数cell()、利用{ }直接建立元胞数组的全部单元。.net
1.1 直接赋值法3d
经过赋值语句把值赋到单元数组的一个单元中,但每一次赋值只能建立一个单元内容。指针
两种赋值方法:内容索引法(content indexing)和单元索引法(cell indexing)。htm
(1)内容索引法:赋值语句的左边用大括号 { } 将标识单元的下标括起来,右边为单元的内容。
(2)单元索引法:赋值语句的左边用小括号 () 将标识单元的下标括起来,右边用大括号将存储于单元中的数据括起来。
1.2 利用函数cell() ——较为经常使用
利用函数cell() 能够建立一个元胞数组,还能够规定其大小。
1.3 利用{ }直接建立元胞数组(的全部单元)
这是一种快捷的元胞数组建立方法,利用 { } 能够直接快速地建立所需元胞数组。在大括号中一次列出所需建立元胞数组的内容,它们之间用逗号(,)隔开,行与行之间用分号(;)隔开,这样就能够建立一个已经初始化好的元胞数组。
2 元胞数组的寻访
在编程时,一个元胞数组的每个单元都是一个指针,指向其余的数据结构,而这些数据结构能够是不一样的数据类型。 在MATLAB中,元胞数组建立时,没有显示内容单元的内容,显示的只是它相应的数据类型。而MATLAB能够经过单元的名称来寻访其单元包含的内容。
在MATLAB中,元胞数组的寻访有如下两种形式。
(1)用( )将下标括起来寻访其单元的结构类型。
(2)用{ }将下标括起来寻访其单元的内容。
(3)此外,能够用celldisp( )函数对元胞数组的全部内容进行寻访。
PS:
关于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')。
【Reference】