源自於http://bime-matlab.blogspot.com/2006/09/24.html
二維矩陣是MATLAB最常用的型式,其應用也符合數學運算的原則。但是,在MATLAB中也獨自創出其特有的運算法,使矩陣的運算更為靈活。矩陣的大小通常列數乘行數表示,如[2x3]即為二列三行之矩陣,以A為例:
>> A=[1 2 3;4 5 6]
A =
1 2 3
4 5 6
上述變數A可利用鍵盤輸入矩陣,但要記得利用分號隔出另一列,各列中之元素則仍以空格或分號區隔,其方式與前面所述之行、列向量之使用相同。上面所得之矩陣A是為2x3的矩陣。在MATLAB中也有一個指令size可以檢查其大小,例如:
>>m=size(A)
m =
2 3
這時候m本身也是一個列矩陣,其第一元素2代表二列,第二元素3代表三行。 [2x3]2列3行之矩陣
矩陣與矩陣之間,可以作線性代數之運算。以M=magic(4)為例:
>>M=magic(4)
M=
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
將M作移置後,再相加,得:
M=magic(4)
M =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> M1=M'
M1 =
16 5 9 4
2 11 7 14
3 10 6 15
13 8 12 1
>> M2=M+M1
M2 =
32 7 12 17
7 22 17 22
12 17 12 27
兩矩陣亦可相乘,可以產生另一矩陣:
>> M*M1
ans =
438 236 332 150
236 310 278 332
332 278 310 236
150 332 236 438
>> M1*M
ans =
378 206 212 360
206 370 368 212
212 368 370 206
360 212 206 378
矩陣M之判定式為零,可以利用以下指令計算:
陣列(array)為矩陣之特殊型式,其外觀型式與矩陣相同,只是陣列之意義在於元素與元素間的一對一的關係,故常以行矩陣為主。陣列之操作,除加法與減法與矩陣相同外,其餘乘、除、倒除、次方、移置等均需在其對應符號(*、/、\、^、')之前加點(.)號,以表示是元素與元素間一對一的操作。例如,前面之M矩陣,以陣列相乘考慮時為:
>>m=det(M)
m=
0
>> M.*M1 %對應符號(*、/、\、^、')之前加點(.)號
ans =
256 10 27 52
10 121 70 112
27 70 36 180
52 112 180 1
>> M1.*M %對應符號(*、/、\、^、')之前加點(.)號
ans =
256 10 27 52
10 121 70 112
27 70 36 180
52 112 180 1
建立一般表格
利用陣列之觀念,亦可創造不同意義之矩陣,或以矩陣型式表示之對照表格,這可以將不同行矩陣以中括號組合而成之新矩陣表示之,例如:>> m=(0:9)'
m =
0
1
2
3
4
5
6
7
8
9
>> able=[m m.^2 2.^m] %對應符號(*、/、\、^、')之前加點(.)號
able =
0 0 1
1 1 2
2 4 4
3 9 8
4 16 16
5 25 32
6 36 64
7 49 128
8 64 256
9 81 512
以10為底的對數函數表:
>> format short g >> x = (1:0.1:2)' x = 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 >> logs = [x log10(x)] logs = 1 0 1.1 0.041393 1.2 0.079181 1.3 0.11394 1.4 0.14613 1.5 0.17609 1.6 0.20412 1.7 0.23045 1.8 0.25527 1.9 0.27875 2 0.30103
沒有留言:
張貼留言