两种方式,参见下面对例子:
>> cell={[1 0 ],[0,1]}cell =
[1x2 double] [1x2 double]
>> cell{3}=[1 1]
cell =
[1x2 double] [1x2 double] [1x2 double]
>> cell(4)={[1 1]}
cell =
[1x2 double] [1x2 double] [1x2 double] [1x2 double]
另外,建议不要用cell作为变量名。
程序只有一行,效率应该也不太差,因为cellfun是用了C的。举例:
maps = {'11','one''22','two''33','three''44','four''11','2ndone''55','five'}
J = find(cellfun(@(d) all(d == '11'), maps))
maps(J,2)
上面的例子主要是cellfun然后再find,另外用all是因为索引可能不只一个字符,如果一个字符可以不用。
单元数组(Cell Array)将类型不同的相关数据集成到一个单一的变量中,使得大量相关数据的引用和处理变得简单方便;需要注意的是,单元数组仅仅是承载其他数据类型的容器,大部分的数学运算只是针对其中的具体数据进行的,而非针对单元数组本身进行。单元数组中的每一个元素称为单元(cell),单元可以包含任何类型的数据,如数值数组、字符、符号对象,甚至于其他的单元数组。单元数组可以使不同类型和不同维数的数组可以共存,细胞型数组实际上可以认为是一种以任意形式的数组为分量的多维数组。中文名
单元
外文名
CELL
定义函数TA说参考资料
定义
1. 细胞型数据的定义:
1)直接赋值定义:细胞型变量在定义时需要使用大括号,元素用逗号隔开
例: B = {1:4,A,‘abcd’}
2)使用cell函数,预先为细胞型变量定义空间
例: A = cell(m,n) 定义一个空的m行n列的cell类型
函数
对细胞型变量元素的引用应当采用大括号作为下标的标示,用小括号作为下标标示时将只显示该元素的压缩形式。
比如:A = {1:4,2.5,‘abc’};
>>A
A =
[1x4 double] [2.5000] 'abc'
>>A(1,1)
ans =
[1x4 double]
>>A{1,1}
ans =
1 2 3 4
2 ) 改变cell类型元素的值
>>A{1,2} = 3:4
A =
[1x4 double] [1x2 double] 'abc'
>>A{1,2}
ans =
3 4
3 ) 删除cell中的元素 需要用A(1)=[] ,若使用A{1} =[]只能将该元素置空不能删除
3. 细胞型变量的函数
函数名 说明
cell(m,n) 创建一个m行n列的细胞型变量
cellfun('fun’,A) 对细胞型变量A作用fun函数,fun可以为isreal,isempty,length,islogical,ndims等
celldisp(A) 完全显示细胞型变量的内容
cellplot(A) 用图形显示细胞型变量的内容
num2cell 将数值数组转换为细胞型变量
deal 输入输出处理
cell2struct 将细胞型变量转换为结构型变量
struct2cell 将结构型变量转换为细胞型变量
iscell 判断是否为细胞型变量
reshape 改变细胞型数组的结构[1]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)