2021年6月9日 星期三

尋找特殊元素

 尋找特殊元素

源自於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

>> max_AA=max(AA) max_AA = 6 3 3
兩相對照之下,所得之最大值是針對AA所含之行向量取得最大值,故其結果為一列矩陣。若左邊給兩項參數,則:
>>[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時則表示行向操作,即為預設值。


沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...