matlab 矩阵_MATLAB基础学习之矩阵变换

矩阵变换:

(1) 对角阵

对角矩阵:只有对角线上有非零元素的矩阵。

数量矩阵:对角线上的元素相等的对角矩阵。

单位矩阵:对角线上的元素都为1的对角矩阵。

① 提取矩阵的对角线元素

diag(A):提取矩阵A主对角线元素,产生一个列向量。

diag(A,k):提取矩阵A第k对角线元素,产生一个列向量。

0485eb1839f4896d49015a87b0453b61.png

对角线的解释

例如:

命令行窗口输入如下:

>> A=[1 0 0 0 0 ;0 3 0 0 0;0 0 2 0 0;0 0 0 5 0;0 0 0 0 6]

按下回车键,显示结果:(下面的命令输入和显示操作类似)

A =

1 0 0 0 0

0 3 0 0 0

0 0 2 0 0

0 0 0 5 0

0 0 0 0 6

>> diag(A)

ans =

1

3

2

5

6

>> A=[1 2 3 4 5;2 3 4 5 6;3 4 5 6 7;4 5 6 7 8;5 6 7 8 9]

A =

1 2 3 4 5

2 3 4 5 6

3 4 5 6 7

4 5 6 7 8

5 6 7 8 9

>> diag(A)

ans =

1

3

5

7

9

>> diag(A,2)

ans =

3

5

7

>> diag(A,-2)

ans =

3

5

7

② diag(V):以向量V为主对角线元素,产生对角矩阵。

diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。

例如:

>> n

n =

1 2 3 4 5

>> diag(n)

ans =

1 0 0 0 0

0 2 0 0 0

0 0 3 0 0

0 0 0 4 0

0 0 0 0 5

>> diag(n,1)

ans =

0 1 0 0 0 0

0 0 2 0 0 0

0 0 0 3 0 0

0 0 0 0 4 0

0 0 0 0 0 5

0 0 0 0 0 0

>> diag(n,-1)

ans =

0 0 0 0 0 0

1 0 0 0 0 0

0 2 0 0 0 0

0 0 3 0 0 0

0 0 0 4 0 0

0 0 0 0 5 0

例:先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,……,第五行乘以5。

>> A=[7 0 1 0 5;3 5 7 4 1;4 0 3 0 2;1 1 9 2 3;1 8 5 2 9]

A =

7 0 1 0 5

3 5 7 4 1

4 0 3 0 2

1 1 9 2 3

1 8 5 2 9

>> D=diag(1:5);

>> D*A

ans =

7 0 1 0 5

6 10 14 8 2

12 0 9 0 6

4 4 36 8 12

5 40 25 10 45

(2) 三角阵

上三角阵:矩阵的对角线以下的元素全为零的矩阵。

下三角阵:对角线以上的元素全为零的矩阵。

① 上三角阵:triu函数

triu(A)提取矩阵A的主对角线以及以上的元素。

triu(A,k)提取矩阵A的第k条对角线以及以上的元素。

例如:

>> triu(ones(4),-1)

ans =

1 1 1 1

1 1 1 1

0 1 1 1

0 0 1 1

② 下三角矩阵

在MATLAB中,提取矩阵A的下三角矩阵的函数是tril,其用法与triu函数完全相同。

矩阵的转置:

转置运算符是小数点后面接单引号(.’)。

共轭转置,其运算符是单引号(’),它在转置的基础上还要取每个数的复共轭。

A =

1.0000 + 0.0000i 3.0000 + 0.0000i

3.0000 + 4.0000i 1.0000 - 2.0000i

>> A.'

ans =

1.0000 + 0.0000i 3.0000 + 4.0000i

3.0000 + 0.0000i 1.0000 - 2.0000i

>> A'

ans =

1.0000 + 0.0000i 3.0000 - 4.0000i

3.0000 + 0.0000i 1.0000 + 2.0000i

注:对于矩阵元素均为实数的情况下,A’和A.’两者所得的结果一样。

rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可省略。

例如:

>> A=[1 3 2;-3 2 1;4 1 2]

A =

1 3 2

-3 2 1

4 1 2

>> rot90(A)

ans =

2 1 2

3 2 1

1 -3 4

>> rot90(A,2)

ans =

2 1 4

1 2 -3

2 3 1

矩阵的翻转:

fliplr(A):对矩阵A实施左右翻转;

flipud(A):对矩阵A实施上下翻转。

例:验证魔方阵的主对角线、副对角线元素之和相等。

>> A

A =

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

>> D1=diag(A);

>> sum(D1)

ans =

65

>> B=flipud(A);

>> D2=diag(B);

>> sum(D2)

ans =

65

e78034ffa2c1229f90d5d9849b270a2b.png

MATLAB软件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值