3.cell数组相关的函数
cell:创建空的元胞数组,预分配内存
celldisp:显示元胞数组所有内容
cellplot:利用图形方式显示内容(因缺思厅!)
cell2mat:将元胞数组成普通矩阵(要求cell元胞数组的所有内容都必须为相同数据类型,可以为字符,会转化为字符矩阵)
mat2cell:将普通矩阵转化成元胞数组
iscell:判断输入是否为元胞数组
cellfun:为cell数组的每个cell单元的内容执行指定的函数,fun可以是特殊的函数或者句柄
A = cellfun(func,C) 将函数 func 应用于元胞数组 C 的每个元胞的内容,每次应用于一个元胞。然后 cellfun 将func 的输出串联成输出数组 A,因此,对于 C 的第 i 个元素来说,A(i) = func(C{i})。输入参数 func 是一个函数的函数句柄,此函数接受一个输入参数并返回一个标量。func 的输出可以是任何数据类型,只要该类型的对象可以串联即可。数组 A 和元胞数组 C 具有相同的大小。(官网解释)
默认情况下,cellfun 将func 的输出串联成数组。func 必须返回标量。如果 func 返回对象,则对象所属的类必须满足以下要求。
支持通过对象数组的线性索引进行赋值具有一个 reshape 方法,可返回与输入大小相同的数组
如果 'UniformOutput' 名称-值对组参数的值为 false (0),则cellfun 将以元胞数组形式返回输出。在这种情况下,func 的输出可以具有任意大小和不同的数据类型。
b={[1,2,1];[2,1,1];[1,1,2]}; c=cellfun(@(x)(mat2str(x)),b,'un',0)
更一般的例子参见
How do I save a cell array that contains both strings and numbers to an ASCII file in MATLAB?cn.mathworks.com
4.cell单元的删除
我们知道矩阵及矩阵的删除可以通过[]实现:
元胞数组操作类似但和其赋值一样有区别,区别就在于{}和()
a={1,2,3};
a{1}=[];