MATLAB 矩陣與幻方矩陣

2021-09-26 05:07:59 字數 2950 閱讀 4099

關於矩陣

在 matlab® 環境中,矩陣是由數字組成的矩形陣列。有時,1×1 矩陣(即標量)和只包含一行或一列的矩陣(即向量)會附加特殊含義。matlab 採用其他方法來儲存數值資料和非數值資料,但剛開始時,通常最好將一切內容都視為矩陣。matlab 旨在盡可能簡化運算。其他程式語言一次只能處理乙個數字,而 matlab 允許您輕鬆快捷地處理整個矩陣。

輸入矩陣

開始學習 matlab 的最佳方法是了解如何處理矩陣。

您可以採用多種不同方法在 matlab 中輸入矩陣:

首先,以元素列表的形式輸入丟勒的矩陣。您只需遵循一些基本約定:

使用空格或逗號分隔行的元素。

使用分號 ; 表示每行末尾。

使用方括號 [ ] 將整個元素列表括起來。

a = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

a =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

矩陣求和、轉置和對角矩陣

您可能已經注意到,幻方矩陣的特殊屬性與元素的不同求和方法相關。如果沿任何行或列求和,或者沿兩條主對角線中的任意一條求和,您將始終得到相同數字。

sum(a)

ans =

34 34 34 34

如果未指定輸出變數,matlab 將使用變數 ans(answer 的縮略形式)來儲存計算結果。您已經計算包含 a 的列總和的行向量。每個列的總和都相同,即幻數和 34。

行總和如何處理?matlab 會優先處理矩陣的列,因此獲取行總和的一種方法是轉置矩陣,計算轉置的列總和,然後轉置結果。

matlab 具有兩個轉置運算子。撇號運算子(例如,a』)執行復共軛轉置。它會圍繞主對角線翻轉矩陣,並且還會更改矩陣的任何複數元素的虛部符號。點撇號運算子 (a.』) 轉置矩陣,但不會影響複數元素的符號。對於包含所有實數元素的矩陣,這兩個運算子返回相同結果。

a'

ans =

16 5 9 4

3 10 6 15

2 11 7 14

13 8 12 1

sum(a')'%生成包含行總和的列向量

ans =

3434

3434

有關避免雙重轉置的其他方法,請在 sum 函式中使用維度引數:

a = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1];

sum(a,1)%代表處理矩陣的列

sum(a,2)%代表處理矩陣的行

ans =

34 34 34 34

ans =

3434

3434

使用 sum 和 diag 函式可以獲取主對角線上的元素的總和:

diag(a)

ans =

1610

71

sum(diag(a))

ans =

34

可以看到幻方矩陣的行和和列和以及對角線和相等,這也是稱為幻方矩陣的原因

magic 函式

matlab 實際包含乙個內建函式,該函式可建立幾乎任意大小的幻方矩陣。此函式稱為 magic 也就不足為奇了:

b = magic(4)

b =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

此矩陣幾乎與丟勒雕刻中的矩陣相同,並且具有所有相同的「神奇」性質;唯一區別在於交換了中間兩列。

您可以交換 b 的中間兩列,使其看起來像丟勒 a。針對 b 中的每一行,按照指定順序(1、3、2、4)對列進行重新排列:

a = b(:,[1 3 2 4])	%行不變,交換列

a =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

生成矩陣

matlab 軟體提供了四個用於生成基本矩陣的函式。

zeros:全部為零

ones:全部為1

rand:均勻分布的隨機元素

randn:正態分佈的隨機元素

z = zeros(2,4)

z = 0 0 0 0

0 0 0 0

f = 5*ones(3,3)

f = 5 5 5

5 5 5

5 5 5

n = fix(10*rand(1,10))

n = 9 2 6 4 8 7 4 0 8 4

r = randn(4,4)

r = 0.6353 0.0860 -0.3210 -1.2316

-0.6014 -2.0046 1.2366 1.0556

0.5512 -0.4931 -0.6313 -0.1132

-1.0998 0.4620 -2.3252 0.3792

Matlab矩陣與矩陣運算

1.矩陣的建立函式 特殊矩陣 a.矩陣轉置 inv a 矩陣求逆 sparse a 稀疏矩陣 full a 將稀疏矩陣轉換為普通矩陣 eye n n階單位矩陣 zeros m,n m n的零矩陣 ones m,n m n的元素全為1的矩陣 rand m,n m n的隨機矩陣,元素在0 1間均勻分布 ...

幻方矩陣之自我總結

曾經看到過很多幻方矩陣的生成演算法 後來自己總結了一套方法,不一定適用於所有的情況,只供留戀。1.奇數階矩陣的生存。1 第乙個數字填在第一行的中間位置 2 在最新插入的右上角插入接下來的數,如果向上超出了界線,在最後一行插入 如果向右超出了界線,在第一列插入 3 如果右上角已經有數,則在其下方插入下...

檢驗並列印幻方矩陣

幻方矩陣是指該矩陣中每一行 每一列 每一對角線上的元素之和都是相等的。從鍵盤輸入乙個5 5的矩陣並將其存入乙個二維整型陣列中,檢驗其是否為幻方矩陣,並將其按指定格式顯示到螢幕上。輸入格式 d 輸出格式 如果是幻方矩陣,螢幕輸出 it is a magic square n 矩陣元素的輸出 4d 換行...