最大值與最小值
最大值與最小值分別使用max()與min()兩函數即可求得,兩者之參數型式均相同。但其結果均是以行向比較,不是列向。例如:
>> a=magic(5)
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> max(a)
ans =
23 24 25 21 22
若要使用列向表示,則必須在第三參數上標明,其第三參數即為ndim值,至於第二參數則為另一組比較的陣列,若僅求一個矩陣之列向最大或最小值,則第二參數以[ ]空矩陣取代即可,而令ndim=2,如:
>> max(a,[],2)
ans =
24
23
22
21
25
>> min(a)
ans =
4 5 1 2 3
>> min(a,[],2)
ans =
1
5
4
3
2
使用轉置指令亦可得到列向最小值,只是所得的為列向量,必須調整才能符合原先之需求:
>> min(a')
ans =
1 5 4 3 2
若是兩個相同大小之矩陣進行比較大小時,則可將第二矩陣置於第二參數位置,而ndim值同樣有效,只是其預設值為ndim=1:
>> B=[1:10]';
>> b=[10:-1:1]';
>> max(B,b)
ans =
10
9
8
7
6
6
7
8
9
10
在左邊的輸出參數第一項為行向或列向之最大或最小值,其第二項輸出則為其在該行向或列向之所在位置:
>> [m,I]=max(a)
m =
23 24 25 21 22
I =
2 1 5 4 3
不過,若兩矩陣作比較,求取陣列中之最大或最小值時,輸出項中不能有第二參數,因為各參數之同列或同行進行比較,均為已知。
沒有留言:
張貼留言