MATLAB中矩陣和幻方矩陣的應(yīng)用
在MATLAB環(huán)境中,矩陣是由數(shù)字組成的矩形數(shù)組。有時(shí),1x1矩陣(即標(biāo)量)和只包含一行或一列的矩陣(即向量)會(huì)附加特殊含義。MATLAB采用其他方法來(lái)存儲(chǔ)數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù),但剛開(kāi)始時(shí),通常最好將
在MATLAB環(huán)境中,矩陣是由數(shù)字組成的矩形數(shù)組。有時(shí),1x1矩陣(即標(biāo)量)和只包含一行或一列的矩陣(即向量)會(huì)附加特殊含義。MATLAB采用其他方法來(lái)存儲(chǔ)數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù),但剛開(kāi)始時(shí),通常最好將一切內(nèi)容都視為矩陣。MATLAB旨在盡可能簡(jiǎn)化運(yùn)算。其他編程語(yǔ)言一次只能處理一個(gè)數(shù)字,而MATLAB允許您輕松快捷地處理整個(gè)矩陣。
如何輸入矩陣
開(kāi)始學(xué)習(xí)MATLAB的最佳方法是了解如何處理矩陣。您可以采用多種不同方法在MATLAB中輸入矩陣。首先,以元素列表的形式輸入丟勒的矩陣。您只需遵循一些基本約定:使用空格或逗號(hào)分隔行的元素;使用分號(hào)表示每行末尾;使用方括號(hào)將整個(gè)元素列表括起來(lái)。
舉個(gè)例子,在命令行窗口中鍵入以下代碼:
A [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
其中,A是一個(gè)4x4的矩陣,它包含16個(gè)元素,可以看做是一個(gè)由4行4列的數(shù)字組成的矩形。
矩陣求和、轉(zhuǎn)置和對(duì)角矩陣
您可能已經(jīng)注意到,幻方矩陣的特殊屬性與元素的不同排列方式相關(guān)。如果沿任何行或列求和,或者沿兩條主對(duì)角線(xiàn)中的任意一條求和,您將始終得到相同數(shù)字。讓我們使用MATLAB來(lái)驗(yàn)證這一點(diǎn)。
您可以使用sum函數(shù)來(lái)計(jì)算包含A的列總和的行向量,每個(gè)列的總和都相同,即幻數(shù)和34。行總和如何處理?MATLAB會(huì)優(yōu)先處理矩陣的列,因此獲取行總和的一種方法是轉(zhuǎn)置矩陣,計(jì)算轉(zhuǎn)置的列總和,然后轉(zhuǎn)置結(jié)果。
MATLAB具有兩個(gè)轉(zhuǎn)置運(yùn)算符。撇號(hào)運(yùn)算符(例如,A')執(zhí)行復(fù)共軛轉(zhuǎn)置。它會(huì)圍繞主對(duì)角線(xiàn)翻轉(zhuǎn)矩陣,并且還會(huì)更改矩陣的任何復(fù)數(shù)元素的虛部符號(hào)。點(diǎn)撇號(hào)運(yùn)算符(A.')轉(zhuǎn)置矩陣,但不會(huì)影響復(fù)數(shù)元素的符號(hào)。對(duì)于包含所有實(shí)數(shù)元素的矩陣,這兩個(gè)運(yùn)算符返回相同結(jié)果。
因此,A'生成了一個(gè)4x4的矩陣,它的第一行是A的第一列,第二行是A的第二列,...,第四行是A的第四列。sum(A')生成包含行總和的列向量。
另外,使用sum和diag函數(shù)可以獲取主對(duì)角線(xiàn)上的元素的總和,而反對(duì)角線(xiàn)上的元素沒(méi)有現(xiàn)成的函數(shù),但可以使用fliplr函數(shù)從左往右地翻轉(zhuǎn)矩陣,再取其對(duì)角線(xiàn)的和。
magic函數(shù)
MATLAB實(shí)際包含一個(gè)內(nèi)置函數(shù),該函數(shù)可創(chuàng)建幾乎任意大小的幻方矩陣。此函數(shù)稱(chēng)為magic也就不足為奇了。
舉個(gè)例子,鍵入以下代碼:
B magic(4)
此矩陣幾乎與丟勒雕刻中的矩陣相同,并且具有所有相同的“神奇”性質(zhì);唯一區(qū)別在于交換了中間兩列。您可以交換B的中間兩列,使其看起來(lái)像丟勒A。針對(duì)B中的每一行,按照指定順序(1、3、2、4)對(duì)列進(jìn)行重新排列:
A B(:,[1 3 2 4])
除了magic函數(shù),MATLAB還提供了三個(gè)用于生成基本矩陣的函數(shù):zeros全部為零,ones全部為1,rand均勻分布的隨機(jī)元素,randn正態(tài)分布的隨機(jī)元素。
最后,通過(guò)以上的學(xué)習(xí),我們可以更好地理解在MATLAB中矩陣的應(yīng)用,包括如何輸入矩陣,如何進(jìn)行矩陣求和、轉(zhuǎn)置和對(duì)角矩陣的操作,以及如何使用magic函數(shù)生成幻方矩陣。