元胞数组(Cell Array)将类型不同的相关数据集成到一个单一的变量中,使得大量相关数据的引用和处理变得简单方便。也就是说cell元胞数组,存储不同类型的数据。
1.元胞数组的创建
创建方法有3种:直接赋值法、利用函数cell()、利用{ }直接创建元胞数组的所有单元。
1.1直接赋值法
通过赋值语句把值赋到元胞数组的一个单元中,但每一次赋值只能创建一个单元内容。
两种赋值方法:内容索引法(content indexing)和单元索引法(cell indexing)。
- 内容索引法
赋值语句的左边用大括号{ }将标识单元的下标括起来,右边为单元的内容。
- 单元索引法
赋值语句的左边用小括号()将标识单元的下标括起来,右边用大括号将存储于单元中的数据括起来。
1.2 利用cell()函数
函数cell()可以创建一个元胞数组,并能规定其大小(预分配内存)。
如预定义一个元胞数组,需要利用赋值法对元胞的每个单元进行初始化赋值。
cell_array = cell(m,n);
1.3 利用{}直接创建元胞数组的所有单元
这是一种快捷的元胞数组创建方法,利用{ }可以直接快速地创建所需元胞数组。在大括号中一次列出所需创建元胞数组的内容,它们之间用逗号(,)隔开,行与行之间用分号(;)隔开,这样就可以创建一个已经初始化好的元胞数组。
2.元胞数组的寻访
一个元胞数组的每一个单元都是一个指针,指向其他的数据结构,而这些数据结构可以是不同的数据类型。在MATLAB中,元胞数组创建时,没有显示内容单元的内容,显示的只是它相应的数据类型。而MATLAB可以通过单元的名称来寻访其单元包含的内容。
在MATLAB中,元胞数组的寻访有以下三种形式。
(1)用( )将下标括起来寻访cell单元的结构类型。
(2)用{ }将下标括起来寻访cell单元的内容。
(3)用celldisp( )函数对元胞数组的所有内容进行寻访。
因此通过()访问cell数组时访问到的是cell单元,通过{}访问cell数组时访问到的是cell单元储存的内容。
3.cell单元的删除
通过[ ]实现矩阵和矩阵元素的删除。
元胞数组删除操作区别就在于{}和()
a={1,2,3};
a{1}=[]; %并不能删除第一个cell单元,只是变成空值
a(1)=[]; %删除第一个单元
a(:)=[]; %一次性删除所有cell单元
4.相关函数
· celldisp:显示元胞数组中所有的内容
· cell:创建空的元胞数组
· cellplot:利用图形方式显示内容
· cell2mat:将数组转变成为普通的矩阵
· mat2cell:将数值矩阵转变成为cell数组
· num2cell:将数值数组转变成为cell数组
· cell2struct:将数组转变成为结构
· struct2cell:将结构转变为cell数组
· iscell:判断输入是否为cell数组
参考:
https://blog.csdn.net/u011125673/article/details/97398874