MATLAB变数(变量)笔记
char类型
在MATLAB中,可以使用char函数创建一个字符矩阵,如:
mych=char(‘a’,‘abc’,‘12345’,‘cd’);
该命令会创建一个二维的字符矩阵,矩阵行数为4行(即输入的参数个数),矩阵列数为5列(输入各参数字符串长度的最大值)。输入size(mych),其返回值为
ans =
4 5
这说明mych为一个4*5的矩阵。
对于mych中的元素,其字符串长度小于5的,自动在右边补齐空格,直到其长度为5。
如对于mych中的第一行元素,输入命令length(mych(1,:))
返回值为5,该行元素为:“a ”,注意,这里a后面包含了4个空格。
如果想把元素中的空格去掉,可以使用strtrim()函数,如:
strtrim(mych(1,:)),返回值为:“a”,此时将不再包含空格。
string类型
表示的是多个字元,是由char类型多个单字符组合而成,例如:
S1='Example';
S2='String';
String concatenation:
S3=[S1 S2] =>ExamoleString
S4=[S1;S2] =>error(发生错误,因为两个字节不想等,不能拼接)
- Many numerical and logical operators can be applied to strings
str='aardvark';
'a'==str
ans=
1 1 0 0 0 1 0 0
then:
str(str=='a')='Z'
结果先是str(11000100)=‘Z’
最后显示结果为ZZrdvZrk
structure类型
结构体通过字段(fields)来对元素进行索引,在访问时只需通过点号来访问数据变量,结构体可以通过两种方法进行创建,即通过直接赋值方式创建或通过struct函数来创建。
/*创建*/
%直接赋值方法创建结构体
circle.radius=3.0;
circle.center[0 0];
circle.color='red';
circle.linestyle='--'
circle=
radius:3
center:[0 0];
color:'red'
linestyle:'--'
%用struct函数创建
data1={3.0,5.0,'sqrt(7)'};
data2={[0 0][1 1][3 5]};
data3={'--''...''-.-'};
data4={'red''blue''yellow'};
data5={'yes''no''no'};
circle=struct('radius',data1,'center',data2,'linestyle',data3,'color',data4,'filled',data5)
circle=
1x3 struct array with fields:
radius
center
linestyle
color
filled
cell array
单元数组中的每一个元素称为单元(cell),单元中可以包含任何类型的Matlab数据,即可以是数组,字符,符号对象,单元数组或结构体等。理论上,单元数组可以创建任意数的单元数组,大多数情况下,为简单起见,创建简单的单元数组(如一维单元数组)。单元数组的创建方法可以分为两种,通过赋值语句直接创建;或通过cell函数首先为单元数组分配内存空间,然后再对每个单元赋值。
A(1,1)={[1 4 3;0 5 8;7 2 9]};
A(1,2)={'Anne Smith'};
A(2,1)={3+7i};
A(2,2)={-pi:pi:pi};
A
A=
[3×3 double] 'Anne Smith'
[3.0000+7.0000i] [1×3 double]
找寻cell中的一个组元
A(1,1)=[3×3 double]
A{1,1}=[1 4 3;0 5 8;7 2 9]
找寻组元的内容
A{1,1}(1,1)=1
cat()函数
array concatenation
A=[1 2;3 4];B=[5 6;7 8];
C=cat(1,A,B)
C=cat(2,A,B)
C=cat(3,A,B)
其中的1,2, 3分别表示的是行,列,层
reshape()函数
A=[1:3;4:6]
C=reshape(A,3,2)
C=
[1 5;4 3;2 6]