矩阵是MATLAB中最基本的数据对象,MATLAB的大部分运算或者命令都是在矩阵的意义下执行的。在MATLAB中,矩阵的使用非常灵活,不需要对矩阵的维数和类型进行说明,就会根据用户所输入的内容自动进行设置。
矩阵的建立
直接输入
将矩阵元素用中括号括起来,按矩阵行元素输入各元素,同一行各元素之间用逗号或空格分隔,不同行元素之间用分号分隔。
如上文所示:
>> A = [1,2;0,-3] %创建一个两行两列的矩阵A
A =
1 2
0 -3
利用已建好的矩阵建立更大的矩阵
一个大矩阵可以由已经建立好的小矩阵拼接而成(分块矩阵)。
代码接上文:
>> B = [5,6;7,8] %创建一个两行两列的矩阵B
B =
5 6
7 8
>> C = [A;B] %C为A和B组成的四行两列的矩阵
C =
1 2
0 -3
5 6
7 8
还可以用实部矩阵和虚部矩阵构成复数矩阵,代码接上文:
>> D = A + B*i
D =
1.0000 + 5.0000i 2.0000 + 6.0000i
0.0000 + 7.0000i -3.0000 + 8.0000i
冒号表达式产生行向量
格式: 初始值 : 步长 : 终止值 (这个有点类似Python中的切片)
其中步长默认为1且可省略。
>> t1 = 0 : 2 : 5
t1 =
0 2 4
>> t2 = 0 : 5
t2 =
0 1 2 3 4 5
linspace()函数产生行向量
格式: linspace( 第一个元素 , 最后一个元素 , 元素总个数 )
>> x = linspace(0,10,5)
x =
0 2.5000 5.0000 7.5000 10.0000
结构矩阵和单元矩阵
结构矩阵
在实际应用中,经常会碰到有多种类型的数据项组成的实体。这些不同类型的数据相互联系,如果分开来表示,就无法体现数据的整体性。结构数据类型可以把一组数据类型不同而逻辑上相关的数据组成一个有机的整体,其中每个数据就构成了这个结构数据的一个成员。由结构数据类型构成的矩阵就是结构矩阵。
格式: 元素.成员名 = 表达式 (给结构矩阵中每个元素的每个成员分别赋值)
>> a(1).x1 = 10; a(1).x2 = 'Liu'; a(1).x3 = [11,21; 34,78];
>> a(2).x1 = 12; a(2).x2 = 'Wang'; a(2).x3 = [34,91; 27,78];
>> a(3).x1 = 14; a(3).x2 = 'Zhang'; a(3).x3 = [13,89; 67,23] %创建结构矩阵a
a =
1x3 struct array with fields:
x1
x2
x3
>>
单元矩阵
单元数据类型也是把不同类型的数据放在一个变量中。但与结构矩阵不同的是,结构矩阵的各个元素下还有成员,每个成员都有自己的名字;而单元矩阵的各个元素就是不同类型的数据,每个元素直接就是由不同类型的数据组成。
建立单元矩阵和一般矩阵相似,直接输入即可,只是单元矩阵用大括号括起来。
>> b = {10,'Liu',[11,21; 34,78]; 12,'Wang',[34,91; 27,78]; 14,'Zhang',[13,89; 67,23]}
b =
[10] 'Liu' [2x2 double]
[12] 'Wang' [2x2 double]
[14] 'Zhang' [2x2 double]