MATLAB软件一般运算符及操作符

2020年10月30日15:10:51MATLAB软件一般运算符及操作符已关闭评论

MATLAB的一般运算符及操作符

运算符

1.矩阵的加减运算

其基本形式为X±Y,X和Y必须为同维的矩阵,此时各对应元素相加减。如果X与Y的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。

例2.1 MATLAB中的矩阵加减运算。

X=

2 3

4 5

Y=

3 4

4 3

>>X+Y

ans =

5 7

8 8

>>X-Y=

ans =

-1 -1

0 2

2.矩阵的乘法运算

X*Y是两个矩阵X和Y的乘积,其中X和Y必须满足矩阵相乘的条件,即矩阵X的列数必须等于矩阵Y的行数。如果其中一个为1×1矩阵也合法,此时便是将每一个矩阵的元素都分别与这个数值相乘。

例2.2 MATLAB中的矩阵乘法运算。

>>X*Y

ans =

18 17

32 31

>>X*2

ans =

4 6

8 10

3.矩阵的数组乘法

X.*Y运算结果为两个矩阵的相应元素相乘,得到的结果与X和Y同维,此时X和Y也必须有相同的维数,除非其中一个为1×1矩阵,此时运算法则与X*Y相同。

例2.3 MATLAB中的数组乘法运算。

>> X.*Y

ans =

6 12

16 15

>> 2.*X

ans =

4 6

8 10

4.矩阵的乘方运算

(1)x^Y表示,如果x为数,而Y为方阵,结果由各特征值和特征向量计算得到。

(2)X^y表示,如果X是方阵、y是一个大于1的整数,所得结果由X重复相乘y次得到;如果y不是整数,则将计算各特征值和特征向量的乘方。

(3)如果X和Y都是矩阵,或X或Y不是方阵,则会显示错误信息。

例2.4 MATLAB中的矩阵乘方运算。

>> X^2

ans =

16 21

28 37

>> X^1.5

ans =

5.9125 - 0.1007i 7.7970 + 0.0573i

10.3960 + 0.0764i 13.7095 - 0.0434i

>> 2^Y

ans =

64.2500 63.7500

63.7500 64.2500

5.矩阵的数组乘方

X.^Y的计算结果为X中元素对Y中对应元素求幂,形成的矩阵与原矩阵维数相等,这里X和Y必须维数相等,或其中一个为数,此时运算法则等同于X^Y。

例2.5 MATLAB中的数组乘方运算。

>> X.^Y

ans =

8 81

256 125

6.矩阵的左除运算

A\B称作矩阵A左除矩阵B,其计算结果大致与INV(A)B相同,但其算法却是不相同的。如果A是N×N的方阵,而B是N维列向量,或是由若干N维列向量组成的矩阵,则X=A\B是方程AX=B的解,X与B的大小相同,对于X和B的每个列向量,都有AX(n)=B(n),此解是由高斯消元法得到的。很显然,A\EYE(SIZE(A))=INV(A)EYE(SIZE(A))=INV(A)。如果A是M×N的矩阵(M≠N),B是M维列向量或由若干M维列向量组成的矩阵,则X=A\B是欠定或超定方程AX=B的最小二乘解。A的有效秩L由旋转的QR分解得到,并至多在每列L个零元素上求解。

例2.6 MATLAB中的矩阵左除运算。

A =

1 2

3 4

B =

2 3

3 2

>> A\B

ans =

-1.0000 -4.0000

1.5000 3.5000

7.矩阵的右除运算

B/A称为矩阵A右除矩阵B,其计算结果基本与B*INV(A)相同,但其算法是不同的,可以由左除得到,即:B/A=(A'\B')'。它实际上是方程XA=B的解。

例2.7 MATLAB中的矩阵右除运算。

>> B/A

ans =

0.5000 0.5000

-3.0000 2.0000

>> (A'\B')'

ans =

0.5000 0.5000

-3.0000 2.0000

8.矩阵的点除运算

如果B和A都是矩阵,且维数相同,则B./A就是B中的元素除以A中的对应元素,所得结果矩阵的大小与B和A都相同;如果B和A中有一个为数,在结果为此数与相应的矩阵中的每个元素做运算,结果矩阵与参加运算的矩阵大小相同。

例2.8 MATLAB中的矩阵点除运算。

>> B./A

ans =

2.0000 1.5000

1.0000 0.5000

>> B./2

ans =

1.0000 1.5000

1.5000 1.0000

9.矩阵的kronecker张量积

K=KRON(A,B)返回A和B的张量积,它是一个大矩阵,取值为矩阵A和B的元素间所有的可能积。如果A是m×n矩阵,而B是p×q矩阵,则KRON(A,B)是mp×nq的矩阵。例如,A是2×2的矩阵,则有下式成立:

KRON(A,B)=[A(1,1)*B A(1,2)*B

A(2,1)*B A(2,2)*B]

如果A和B中有一个为稀疏矩阵,则只有非零元素会参与计算,所得的结果也是稀疏矩阵。

例2.9 MATLAB中的矩阵kronecker张量积运算。

>> kron(A,B)

ans =

2 3 4 6

3 2 6 4

6 9 8 12

9 6 12 8

 操作符

1.冒号“:”

此符号在矩阵的构造和运算中非常有用,它可以用来产生向量,用作矩阵的下标,以及部分地选择矩阵的元素,进行行循环操作等,熟练掌握可以在矩阵的运算中受益匪浅。其基本用法如下。

j:k 等价于[j,j+1,…,k]

j:i:k 等价于[j,j+i,j+2i,…,k]

j:k中,如果j<k则返回空值;j:I:k中,如果j>k并且i>0,或j<k并且i<0都会返回空值。

A(:,i)取A矩阵的第i列。

A(i,:)取A矩阵的第i行。

A(:,:)以A的所有元素构造二维矩阵,如果A是二维矩阵,则结果就等于A。

A(j:k)等价于A(j),A(j+1),…,A(k)。

A(:,:,k)表示三维矩阵A的第3页。

A(:)将所有A的元素作为一个列向量,如果此操作符在赋值语句的左边,则用右边矩阵的元素来填充矩阵A,矩阵A的结构不变,但要求两边矩阵的元素个数相同,否则会出错。

例2.10 MATLAB中冒号的用法。

>> a=rand(3,4)

a =

0.8147 0.9134 0.2785 0.9649

0.9058 0.6324 0.5469 0.1576

0.1270 0.0975 0.9575 0.9706

>> b=rand(2,2,3)

b(:,:,1)=

0.9572 0.8003

0.4854 0.1419

b(:,:,2)=

0.4218 0.7922

0.9157 0.9595

b(:,:,3)=

0.6557 0.8491

0.0357 0.9340

>> b(:,:,3)

ans =

0.6557 0.8491

0.0357 0.9340

>> b(:,:)

ans =

0.9572 0.8003 0.4218 0.7922 0.6557 0.8491

0.4854 0.1419 0.9157 0.9595 0.0357 0.9340

>> a(:)=b

a =

0.9572 0.1419 0.7922 0.0357

0.4854 0.4218 0.9595 0.8491

0.8003 0.9157 0.6557 0.9340

2.百分号“%”

百分号在M文件和命令行中表示注释,即在一行中百分号后面的语句都被忽略而不被执行。在M文件中,百分号后面的语句可以用help命令打印出来。

3.连续号“…”

如果一条命令很长,一行容不下,可以用3个或更多的点加在一行的末尾,表示此行未完,而在下一行继续。

4.单引号“'”

表示矩阵的转置。

5.分号“;”

分号用在“[]”内,表示矩阵中行的结尾;也可以用在每行命令的结尾,在命令不会回显。可以用在M文件中控制命令的显示,并压缩输出篇幅。

例2.11 MATLAB中分号的用法。

>> c=[1 2;3 4]

c =

1 2

3 4

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。