1. 引子
MATLAB 的 cell,称单元格数组 or 元胞数组,其精华之处就是在可以存储不同类型的数据,可以是Matlab的类型或者自定义的类型。
一个元胞数组的一个单元可能包含:一个实数数组 or 字符型数组 or 复数数组 or 元胞数组,或者多种类嵌套并存。
2. 元胞数组的创建
2.1 空元胞数组
最简单的1x1空元胞数组,
C={
};
以及axb阶空元胞数组和n阶空元胞数组
C=cell(a,b);
C=cell([a b]);
C=cell(n);
常用于在循环迭代前的变量定义,或者占据内存。
2.2 元胞数组中 { } 和( )的区别
在比较复杂的代码中,一个元胞数组中可能存在上百个元素,在迭代赋值过程中由于用错“ { } ”和“ ( ) ”会导致报错的情况。并且,在比较复杂的系统或者利用很多循环语句的情况下,错误排查会比较痛苦,所以最好提前弄清这两个括号使用的情况。
一个简单的例子:
C{
1}='this is a cell';
\\和下面等价
C(1)={
'this is a cell'};
我们可以看出,利用 { } 赋值,我们只需要输入元胞里的内容即可,然而用( )赋值方式的化,我们需要利用 { } 将其转变成元胞数组的型式,再赋值给C。
而对于C这个元胞数组的引用,我们可以看出,
>> C{
1}
ans =
'this is a cell'
\\或者是
C