tft每日頭條

 > 生活

 > matlab編寫n階矩陣

matlab編寫n階矩陣

生活 更新时间:2024-07-20 03:21:02
矩陣變換:

(1) 對角陣

對角矩陣:隻有對角線上有非零元素的矩陣。

數量矩陣:對角線上的元素相等的對角矩陣。

單位矩陣:對角線上的元素都為1的對角矩陣。

① 提取矩陣的對角線元素

diag(A):提取矩陣A主對角線元素,産生一個列向量。

diag(A,k):提取矩陣A第k對角線元素,産生一個列向量。

matlab編寫n階矩陣(MATLAB基礎學習之矩陣變換)1

對角線的解釋

例如:

命令行窗口輸入如下:

>> 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

matlab編寫n階矩陣(MATLAB基礎學習之矩陣變換)2

MATLAB軟件

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved