元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。
元胞数组的定义可以用两种方法来实现,一种是用赋值语句直接定义,另一种是由cell函数预分配存储空间,而后对元胞元素逐个赋值。
例:
第一种:
>> a=[1,3,5;2,4,6];
>> b=[1,3;5,7;9,11];
>> x={a,b,[1,2,3,4;5,6,7,8];'love',1:3,a*b}
x =
[2x3 double] [3x2 double] [2x4 double]
'love' [1x3 double] [2x2 double]
第二种:
>> y=cell(2,3)
y =
[] [] []
[] [] []
>> y{1,1}=a;
>> y{1,2}=b;
>> y{1,3}=[1,2,3,4;5,6,7,8];
>> y{2,1}='love';
>> y{2,2}=1:3;
>> y{2,3}=a*b;
>> y
y =
[2x3 double] [3x2 double] [2x4 double]
'love' [1x3 double] [2x2 double]
元胞数组常用函数:
函数名 | 说明 | 函数名 | 说明 |
cell | 生成元胞数组 | deal | 输入/输出处理 |
cellfun | 对元胞数组变量中的元素函数 | cell2struct | 将元胞数组转换为结构数组 |
celldisp | 显示元胞数组变量的内容 | struct2cell | 将结构数组转换为元胞数组 |
cellplot | 用图形显示元胞数组变量的内容 | iscell | 判断是否为元胞数组变量 |
num2cell | 将数值数组转换为元胞数组 | reshape | 改变元胞数组的结构 |