矩陣和數(shù)組(3)6.1矩陣 6.1.11操作矩陣 6.1.12矩陣的可視化 6.1.13多維數(shù)組
6.1矩陣 6.1.11操作矩陣下面是一些用于處理矩陣的函數(shù): diag 提取或創(chuàng)建對(duì)角線。
diag 函數(shù)可以用于提取或創(chuàng)建矩陣的對(duì)角線。具體來(lái)說(shuō),如果輸入一個(gè)矩陣,diag 函數(shù)會(huì)返回該矩陣的主對(duì)角線元素組成的向量。如果輸入一個(gè)向量,diag 函數(shù)會(huì)創(chuàng)建一個(gè)以該向量為主對(duì)角線元素的矩陣。例如,假設(shè)有一個(gè)3x3的矩陣A:
A = [1 2 3; 4 5 6; 7 8 9];
要提取A的主對(duì)角線元素,可以使用以下代碼: d = diag(A);
運(yùn)行結(jié)果為: d = 1 5 9
要?jiǎng)?chuàng)建一個(gè)以向量v 為主對(duì)角線元素的矩陣,可以使用以下代碼: B = diag(v);
例如,要?jiǎng)?chuàng)建一個(gè)3x3的矩陣,其主對(duì)角線元素為1、2、3,可以使用以下代碼: v = [1 2 3]; B = diag(v);
運(yùn)行結(jié)果為: B = [1 0 0; 0 2 0; 0 0 3]
fliplr 函數(shù)可以用于將矩陣從左到右翻轉(zhuǎn)。具體來(lái)說(shuō),fliplr 函數(shù)會(huì)將矩陣的每一行從左到右翻轉(zhuǎn)。例如,假設(shè)有一個(gè)3x3的矩陣A:
A = [1 2 3; 4 5 6; 7 8 9];
要將A從左到右翻轉(zhuǎn),可以使用以下代碼: B = fliplr(A);
運(yùn)行結(jié)果為: B = [3 2 1; 6 5 4; 9 8 7]
flipud 函數(shù)可以用于將矩陣從上到下翻轉(zhuǎn)。具體來(lái)說(shuō),flipud 函數(shù)會(huì)將矩陣的每一列從上到下翻轉(zhuǎn)。例如,假設(shè)有一個(gè)3x3的矩陣A:
A = [1 2 3; 4 5 6; 7 8 9];
要將A從上到下翻轉(zhuǎn),可以使用以下代碼: B = flipud(A);
運(yùn)行結(jié)果為: B = [7 8 9; 4 5 6; 1 2 3]
rot90 函數(shù)可以用于將矩陣旋轉(zhuǎn)。具體來(lái)說(shuō),rot90 函數(shù)可以將矩陣逆時(shí)針旋轉(zhuǎn)90度、180度或270度。例如,假設(shè)有一個(gè)3x3的矩陣A:
A = [1 2 3; 4 5 6; 7 8 9];
要將A逆時(shí)針旋轉(zhuǎn)90度,可以使用以下代碼: B = rot90(A);
運(yùn)行結(jié)果為: B = [3 6 9; 2 5 8; 1 4 7]
要將A逆時(shí)針旋轉(zhuǎn)180度,可以使用以下代碼: C = rot90(A, 2);
運(yùn)行結(jié)果為: C = [9 8 7; 6 5 4; 3 2 1]
要將A逆時(shí)針旋轉(zhuǎn)270度,可以使用以下代碼: D = rot90(A, 3);
運(yùn)行結(jié)果為: D = [7 4 1; 8 5 2; 9 6 3]
tril 函數(shù)可以用于提取矩陣的下三角形部分。具體來(lái)說(shuō),tril 函數(shù)會(huì)將矩陣的上三角形部分置為0,返回矩陣的下三角形部分。例如,假設(shè)有一個(gè)3x3的矩陣A:
A = [1 2 3; 4 5 6; 7 8 9];
要提取A的下三角形部分,可以使用以下代碼: B = tril(A);
運(yùn)行結(jié)果為: B = [1 0 0; 4 5 0; 7 8 9]
注意,tril 函數(shù)默認(rèn)提取矩陣的主對(duì)角線及以下部分。如果要提取矩陣的次對(duì)角線及以下部分,可以使用tril(A, -1) 。 A =
1 2 3 4 5 6 7 8 9
>> tril(A, -1)
ans =
0 0 0 4 0 0 7 8 0
6.1.12矩陣的可視化矩陣可以在MATLAB中可視化。這一主題在第9章作了簡(jiǎn)要討論,并附有插圖。 6.1.13多維數(shù)組MATLAB數(shù)組可以有兩個(gè)以上的維度。例如,假設(shè)你創(chuàng)建了一個(gè)矩陣a = [1:2; 3:4] ,可以向其中添加第三個(gè)維度a(:,:,2) = [5:6; 7:8] >> a = [1:2; 3:4]
a =
1 2 3 4
>> a(:,:,2) = [5:6; 7:8]
a(:,:,1) =
1 2 3 4
a(:,:,2) =
5 6 7 8
首先創(chuàng)建了一個(gè)2x2的矩陣a,其中第一行為1和2,第二行為3和4。然后,它在第三維上添加了一個(gè)新的2x2的矩陣,其中第一行為5和6,第二行為7和8。最后,通過(guò)a(:,:,1) 和a(:,:,2) 可以分別訪問(wèn)這兩個(gè)矩陣。 我們可以把三維數(shù)組a想象成一系列的“頁(yè)面”,每頁(yè)上都有一個(gè)矩陣。a的第三個(gè)維度是頁(yè)數(shù)。這類似于具有多個(gè)工作表的電子表格:每個(gè)工作表包含一個(gè)表格(矩陣)。
|