1.MATLAB中常用数据类型
(1)数值数据:整数int;单精度single;双精度double。
(2)字符数据:字符串char,eg: '456a','姓名'
(3)元胞数组:元胞cell,索引单元阵列,每个都能存储不同维数和数据类型的数组
eg: {'12a',5,[4 5 6]}
2.元胞数组的基本概念
元胞数组由不同元胞单元组成,每个单元存储着不同元素。
1.元胞数组的创建
%创建一行五列的元胞数组
A={'我','want','V587',[1 2 3],{2}};
%显式存储
cellplot(A)
B={'我','want','V587';[1 2 3],{2},2};
cellplot(B)
2.元胞数组的访问
- 访问元胞(含数据类型):圆括号
- 访问元胞里的元素:花括号
- 访问元胞数组里面 数组的某个元素:先花括号,再圆括号
B={'我','want','V587';[1 2 3],{2},2};
%访问元胞类型
>>B(1,2)
ans=
'want'
>>B(2,1)
ans=
[1*3 double]
%访问元胞元素
B(2,1)
ans=
1 2 3
%元胞数组的第二行第一列:是一个矩阵,用圆括号再访问这个矩阵的第一行第二列
B{2,1}(1,2)
ans=
2
3.元胞数组的赋值与修改
- 修改元素 B(1,3)={'V246'};
4.元胞数组元素的匹配与寻找
- 字符串的匹配 strcmp(A,'a')
- 数的匹配 ismenber([],[])
- 混合:isequal
%字符串的匹配
%在B中找‘我’,返回一个与B同型的矩阵,‘我’所在的位置为1,其他位置为0
>>strcmp(B,'我')
ans=
1 0 0
0 0 0
%返回索引,矩阵按列编号
>>Ind=find(strcmp(B,'want'))
ans=
3
%数组数字匹配
%第一个矩阵中元素是否在第二个矩阵中出现
%y与第一个矩阵同型,出现则为1,不出现为0;
%index与第一个矩阵同型,显式首次在第二个矩阵中出现的序号
>>[y,index]=ismember([1 2 3],[2 2 1 4])
y=
1 1 0
index=
3 1 0
%数字和字符串混合
%在B中找2所在的位置
>>Ind=find(cellfun(@(x) isequal(x,2),B))
ans=
6