上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3 MATLAB中的矩阵及其运算
MATLAB中的很多运算都会涉及矩阵,因此需要对MATLAB 中关于矩阵的定义方式、特殊矩阵的生成、运算代码等有详细的了解。
首先,在输入矩阵时,注意用逗号或空格来区分同一行的不同数字,用分号来区分不同的行。一行输入完毕后,也可以按回车键来开始新的一行。
>> a=[1 2 3 4; 5, 6, 7, 8] a= 1 2 3 4 5 6 7 8
需要注意的是,输入矩阵时,所有的行都必须有相同数量的元素。
>> b=[ 1 2 3 4 5 6 7 8 1,2,2,2] b= 1 2 3 4 5 6 7 8 1 2 2 2
对于零矩阵、单位矩阵等一些特殊的矩阵,可以由MATLAB自动生成。比如生成m×n阶零矩阵可以使用命令A=eye(m, n)。
>> A=eye(2, 4) A= 1 0 0 0 0 1 0 0
生成m×n阶单位矩阵可以使用命令B=zeros(m, n)。
>> B=zeros(2, 4) B= 0 0 0 0 0 0 0 0
我们知道,矩阵就是数据表格,有时可能需要提取其中的部分数据,或者对数据表格进行切割、合并等操作,这些都可以借助一些MATLAB命令迅速生成相应的结果。提取矩阵中属于第i行到第j行、第m列到第n列的部分元素组成新的矩阵,可以用命令A(i: j, m: n)。
A= 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 >> A(1: 2, 2: 3) ans= 0 0 1 0
删去矩阵中的部分行,剩余元素构成新的矩阵可以用命令A(i: j, :)。删去部分列,剩余元素构成新的矩阵可以用命令A(:, m: n)。
A= 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 >> A(1: 2, :) ans= 1 0 0 0 0 0 1 0 0 0 >>A(:, 2: 3) ans= 0 0 1 0 0 1
将A和B两个矩阵合并为一个矩阵,可以用 [AB] 和 [A; B] 命令,前者表示A在左而B在右,后者表示A在上而B在下。
>> A=[1, 2; 3, 4]; B=[1, 0; 0, 1]; >> [ A B] ans= 1 2 1 0 3 4 0 1 >> [ A; B] ans= 1 2 3 4 1 0 0 1
此外,线性代数课程中讲过的矩阵运算也可以很方便地实现。比如两个同型矩阵A和B相加,可以用A+B命令,两个矩阵相乘可以用A∗B命令。常见的矩阵运算命令如表1-2所示。
表1-2
矩阵运算在科学与工程计算中很常见,在本书后续的线性代数部分会介绍更多的矩阵运算。