矩陣和陣列

不過普通話一乙不改名發表於2020-10-06

矩陣和陣列

MATLAB 是“matrix laboratory”的縮寫形式。MATLAB® 主要用於處理整個的矩陣和陣列,而其他程式語言大多逐個處理數值。

所有 MATLAB 變數都是多維陣列,與資料型別無關。矩陣是指通常用來進行線性代數運算的二維陣列。

陣列建立

要建立每行包含四個元素的陣列,請使用逗號 (,) 或空格分隔各元素。

a = [1 2 3 4]
a = 1×4

 1     2     3     4

這種陣列為行向量。

要建立包含多行的矩陣,請使用分號分隔各行。

a = [1 2 3; 4 5 6; 7 8 10]
a = 3×3

 1     2     3
 4     5     6
 7     8    10

建立矩陣的另一種方法是使用 ones、zeros 或 rand 等函式。例如,建立一個由零組成的 5×1 列向量。

z = zeros(5,1)
z = 5×1

 0
 0
 0
 0
 0

矩陣和陣列運算

MATLAB 允許您使用單一的算術運算子或函式來處理矩陣中的所有值。

a + 10
ans = 3×3

11    12    13
14    15    16
17    18    20

sin(a)
ans = 3×3

0.8415    0.9093    0.1411

-0.7568 -0.9589 -0.2794
0.6570 0.9894 -0.5440

要轉置矩陣,請使用單引號 (’):

a’
ans = 3×3

 1     4     7
 2     5     8
 3     6    10

您可以使用 * 運算子執行標準矩陣乘法,這將計算行與列之間的內積。例如,確認矩陣乘以其逆矩陣可返回單位矩陣:

p = a*inv(a)
p = 3×3

1.0000         0   -0.0000
     0    1.0000         0
     0         0    1.0000

請注意,p 不是整數值矩陣。MATLAB 將數字儲存為浮點值,算術運算可以區分實際值與其浮點表示之間的細微差別。使用 format 命令可以顯示更多小數位數:

format long
p = a*inv(a)
p = 3×3

1.000000000000000 0 -0.000000000000000
0 1.000000000000000 0
0 0 0.999999999999998

使用以下命令將顯示內容重置為更短格式

format short
format 僅影響數字顯示,而不影響 MATLAB 對數字的計算或儲存方式。

要執行元素級乘法(而非矩陣乘法),請使用 .* 運算子:

p = a.*a
p = 3×3

 1     4     9
16    25    36
49    64   100

乘法、除法和冪的矩陣運算子分別具有執行元素級運算的對應陣列運算子。例如,計算 a 的各個元素的三次方:

a.^3
ans = 3×3

       1           8          27
      64         125         216
     343         512        1000

串聯

串聯是連線陣列以便形成更大陣列的過程。實際上,第一個陣列是通過將其各個元素串聯起來而構成的。成對的方括號 [] 即為串聯運算子。

A = [a,a]
A = 3×6

 1     2     3     1     2     3
 4     5     6     4     5     6
 7     8    10     7     8    10

使用逗號將彼此相鄰的陣列串聯起來稱為水平串聯。每個陣列必須具有相同的行數。同樣,如果各陣列具有相同的列數,則可以使用分號垂直串聯。

A = [a; a]
A = 6×3

 1     2     3
 4     5     6
 7     8    10
 1     2     3
 4     5     6
 7     8    10

複數

複數包含實部和虛部,虛數單位是 -1 的平方根。

sqrt(-1)
ans = 0.0000 + 1.0000i
要表示複數的虛部,請使用 i 或 j。

c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex

3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i

相關文章