5 Cell数组
元胞数组(cell)是MATLAB的一种特殊数据类型。可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。图3-3是元胞数组的结构示意图,表示的是一个2´3的元胞数组。元胞数组的第1行包括了无符号整数、字符串数组和一个复数数组,第2行包括了其他3种类型的数组,其中最后一个是另外的元胞数组的嵌套。
![018a6b4f053fd90e9d4730085ef9d641.png](https://img-blog.csdnimg.cn/img_convert/018a6b4f053fd90e9d4730085ef9d641.png)
图3-3 元胞数组结构示意图
和数值数组一样,元胞数组的维数不受限制,元胞数组可以是一维的、二维的,也可以是多维的。对元胞数组的元素进行寻访,可以使用“单下标”方式或者“全下标”方式。
结构数组和元胞数组有着非常相似的功能,但是二者又有所区别,具体比较如下。
结构数组和元胞数组在使用目的上类似,都是提供一种存储混合格式数据的方法。二者最大的区别在于:结构数组存储数据的容器称做“域”,而元胞数组是通过数字下标索引来进行访问的。
结构数组经常用于重要数据的组织存储。而元胞数组因为采用数字下标,所以经常在循环控制流中使用。元胞数组还常被用来存储不同长度的字符串。
在实际应用中,二者一般可以随意选择,多数情况下无论选用其中哪一种类型都可以达到目的,