元胞数组(Cell Array)将类型不同的相关数据集成到一个单一的变量中,使得大量相关数据的引用和处理变得简单方便。cell元胞数组,存储不同类型的数据。
A cell array is a collection of containers called cells in which you can store different types of data.
1、元胞数组的创建
创建方法有3种:直接赋值法、利用函数cell()、利用{ }直接创建元胞数组的所有单元。
1.1 直接赋值法
通过赋值语句把值赋到元胞数组的一个单元中,但每一次赋值只能创建一个单元内容。
两种赋值方法:内容索引法(content indexing)和单元索引法(cell indexing)。
(1)内容索引法
赋值语句的左边用大括号{ }将标识单元的下标括起来,右边为单元的内容。
(2)单元索引法
赋值语句的左边用小括号()将标识单元的下标括起来,右边用大括号将存储于单元中的数据括起来。
1.2 利用函数cell()
利用函数cell() 可以创建一个元胞数组,还可以规定其大小。
1.3 利用{ }直接创建元胞数组(的所有单元)
这是一种快捷的元胞数组创建方法,利用{ }可以直接快速地创建所需元胞数组。在大括号中一次列出所需创建元胞数组的内容,它们之间用逗号(,)隔开,行与行之间用分号(;)隔开,这样就可以创建一个已经初始化好的元胞数组。
2、元胞数组的寻访
在编程时,一个元胞数组的每一个单元都是一个指针,指向其他的数据结构,而这些数据结构可以是不同的数据类型。在MATLAB中,元胞数组创建时,没有显示内容单元的内容,显示的只是它相应的数据类型。而MATLAB可以通过单元的名称来寻访其单元包含的内容。
通过()访问cell数组时访问到的是cell单元,通过{}访问cell数组时访问到的是cell单元储存的内容。
在MATLAB中,元胞数组的寻访有以下三种形式。
(1)用( )将下标括起来寻访其单元的结构类型。
(2)用{ }将下标括起来寻访其单元的内容。
(3)用celldisp( )函数对元胞数组的所有内容进行寻访。
例子
可以直接通过{}类似于矩阵的直接赋值:a={‘winter’,123,‘coming’,‘哈哈’};
也可以通过cell函数预分配内存,再赋值:a=cell(1,4);a={‘winter’,123,‘coming’,‘哈哈’};
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数组