MatLab---元胞数组
作者:互联网
1.元胞数组
>> {23,'a',1:2:9,"hello"}
ans =
1×4 cell 数组
{[23]} {'a'} {1×5 double} {["hello"]}
>> [1 4 6 76]
ans =
1 4 6 76
>> {1 4 6 76}
ans =
1×4 cell 数组
{[1]} {[4]} {[6]} {[76]}
>> %元胞
>> cellmat={23,'a';1:2:9,"hello"}
cellmat =
2×2 cell 数组
{[ 23]} {'a' }
{1×5 double} {["hello"]}
>> rand(3,4)
ans =
0.8147 0.9134 0.2785 0.9649
0.9058 0.6324 0.5469 0.1576
0.1270 0.0975 0.9575 0.9706
>> zeros(3,4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
>> cell(3,4)
ans =
3×4 cell 数组
列 1 至 3
{0×0 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double}
列 4
{0×0 double}
{0×0 double}
{0×0 double}
>> cellrowvec={23,'a',1:2:9,"hello"}
cellrowvec =
1×4 cell 数组
{[23]} {'a'} {1×5 double} {["hello"]}
2.取出元胞数组里面的内容
>> cellrowvec{2}
ans =
'a'
3.元胞矩阵中的内容
>> cellmat{2,1}
ans =
1 3 5 7 9
>> cellmat
cellmat =
2×2 cell 数组
{[ 23]} {'a' }
{1×5 double} {["hello"]}
>> cellmat{1,1}=24
cellmat =
2×2 cell 数组
{[ 24]} {'a' }
{1×5 double} {["hello"]}
4.元胞数组中的一个元素(不是内容)
>> cellrowvec(2)
ans =
1×1 cell 数组
{'a'}
>> cellrowvec{2} 取内容
ans =
'a'
>> cell2=cellrowvec{2}
cell2 =
'a'
>> class(cell2)
ans =
'char'
>> cell22=cellrowvec(2)
cell22 =
1×1 cell 数组
{'a'}
>> class(cell22)
ans =
'cell'
>> %cellrowvec(2) 第二个元胞;cellrowvec{2}第二个元胞的内容
>> cellmat(2,1)
ans =
1×1 cell 数组
{1×5 double}
>> cell21=cellmat(2,1)
cell21 =
1×1 cell 数组
{1×5 double}
>> cell21{1}
ans =
1 3 5 7 9
>> cell21{1}(4)
ans =
7
>> cellmat(2,1){1}(4)
错误: 使用括号 '()' 进行索引必须作为有效索引表达式的最后一
个操作出现。
第一行的全部元胞元素
>> cellmat(1,:)
ans =
1×2 cell 数组
{[24]} {'a'}
第一行的所有元胞元素内容
>> cellmat{1,:}
ans =
24
ans =
'a'
>> ans
ans =
'a'
>> [c1,c2]=cellmat{1,:}
c1 =
24
c2 =
'a'
元胞矩阵的行列数
>> size(cellmat)
ans =
2 2
>> length(cellmat)
ans =
2
>> length(cellrowvec)
ans =
4
>> cellrowvec(end)
ans =
1×1 cell 数组
{["hello"]}
元胞数组的最后一个元素内容
>> cellrowvec{end}
ans =
"hello"
>> vec=2:5
vec =
2 3 4 5
>> vec(2)=[]
vec =
2 4 5
>> cellrowvec
cellrowvec =
1×4 cell 数组
{[23]} {'a'} {1×5 double} {["hello"]}
删除第2个元胞数组元素
>> cellrowvec(2)=[]
cellrowvec =
1×3 cell 数组
{[23]} {1×5 double} {["hello"]}
元胞数组第二个元素内容为空
>> cellrowvec{2}=[]
cellrowvec =
1×3 cell 数组
{[23]} {0×0 double} {["hello"]}
>> cellmat(1,:)=[]
cellmat =
1×2 cell 数组
{1×5 double} {["hello"]}
>> ["A","B","C"]
ans =
1×3 string 数组
"A" "B" "C"
>> {'A','B','C'}
ans =
1×3 cell 数组
{'A'} {'B'} {'C'}
>> {'A','BB','CCC'}
ans =
1×3 cell 数组
{'A'} {'BB'} {'CCC'}
元胞数组元素的个数(整个元胞数组的长度)
>> length(ans)
ans =
3
元胞数组每个元素的长度
>> strlength({'A','BB','CCC'})
ans =
1 2 3
string类型转换成cell类型
>> string({'A','BB','CCC'})
ans =
1×3 string 数组
"A" "BB" "CCC"
>> cellstr(["A","B","C"])
ans =
1×3 cell 数组
{'A'} {'B'} {'C'}
cvnames_char={'Sue','Cathy','Xavier'}
cvnames_char =
1×3 cell 数组
{'Sue'} {'Cathy'} {'Xavier'}
strjoin()捏合cell数组元素
>> strjoin(cvnames_char)
ans =
'Sue Cathy Xavier'
cvnames_char =
1×3 cell 数组
{'Sue'} {'Cathy'} {'Xavier'}
用‘-’连接cell数组元素
>> strjoin(cvnames_char,'-')
ans =
'Sue-Cathy-Xavier'
用‘x’连接cell数组元素
>> strjoin(cvnames_char,'x')
ans =
'SuexCathyxXavier'
>> cvnames_char_join=strjoin(cvnames_char,'-')
cvnames_char_join =
'Sue-Cathy-Xavier'
将char类型以‘-’分割成cell数组;注:
strsplit()函数的返回值是cell数组类型
>> strsplit(cvnames_char_join,'-')
ans =
1×3 cell 数组
{'Sue'} {'Cathy'} {'Xavier'}
判断是否是元胞中全是字符串
>> iscellstr(cvnames_char)
ans =
logical
1
>> cvnames_char_modified=[cvnames_char 123]
cvnames_char_modified =
1×4 cell 数组
{'Sue'} {'Cathy'} {'Xavier'} {[123]}
>> iscellstr(cvnames_char_modified)
ans =
logical
0
标签:cell,char,double,---,MatLab,数组,ans,元胞 来源: https://www.cnblogs.com/lsj89/p/16198225.html