(1) 對角陣
對角矩陣:隻有對角線上有非零元素的矩陣。
數量矩陣:對角線上的元素相等的對角矩陣。
單位矩陣:對角線上的元素都為1的對角矩陣。
① 提取矩陣的對角線元素
diag(A):提取矩陣A主對角線元素,産生一個列向量。
diag(A,k):提取矩陣A第k對角線元素,産生一個列向量。
對角線的解釋
例如:
命令行窗口輸入如下:
>> 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軟件
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!