源自於http://bime-matlab.blogspot.com/2006/09/28.html
要在矩陣中尋找元素中之最大值、最小值及其平均值,可分別使用max、min、mean、sum等四函數。在這些函數因應用於二維與一維而功能上有些不同。以一矩陣AA=[-5 -4 3; 3 -3 1; 6 3 1] 為例,其對應值可計算如下:
>>AA=[-5 -4 3; 3 -3 1; 6 3 1] AA = -5 -4 3 3 -3 1 6 3 1
兩相對照之下,所得之最大值是針對AA所含之行向量取得最大值,故其結果為一列矩陣。若左邊給兩項參數,則:
>> max_AA=max(AA) max_AA = 6 3 3
>>[vmax, va]=max(AA)
vmax =
6 3 3
va =
3 3 1
va所顯示的數值顯然是指該行之最大值發生在那一列。若要求得整個矩陣之最大值,則可就vmax之列向量再作一次極大值求證,或者對原矩陣AA連續施用max函數:
>>max(max(AA))
ans = 6
>>max(AA(:))
ans = 6
極小值函數min之應用與max函數完全一樣
要求得一陣列之平均值或總和函數分別為mean與sum兩函數。仍以上述之矩陣AA為例:
>>AVG=mean(AA)
AVG =
1.3333 -1.3333 1.6667
>>TOT=sum(AA)
TOT = 4 -4 5
上面介紹的四種函數中,基本之運算方式是一致的,其處理過程均先以矩陣之行方向演算。實際上若矩陣AA本身即屬行向量或列向量,其運算結果即為所需之答案。
這也為什麼我們若先把AA矩陣變為AA(:),使其成為行向量矩陣,即可求出整體之最大值。
實際上,上述這些函數也可以列方向作處理,其方式是在輸入參數另加一項,設為dim,其型式為max(AA,dim)。當dim設為2時,表示以列方向操作,其結果為行矩陣;當dim設為1時則表示行向操作,即為預設值。
沒有留言:
張貼留言