定義
函數max函數用于求向量或者矩陣的最大元素,或幾個指定值中的最大值。MATLAB等高級編程語言中常用有三種形式:max(A)、max(A,B)、max(A,[],dim)。
參考用書
最優化方法及其MATLAB程序設計
本書較為系統地介紹了最優化問題的基本理論和算法以及MATLAB優化工具箱的使用,并通過程序設計對一維搜索、線性規劃、非線性規劃、目标規劃、約束優化、二次規劃、圖論算法等内容進行仿真。本書力求做到深入淺出,注重方法的實用性,着重闡述基本思路、必要的理論和方法,以及應用中需了解、掌握的知識,使讀者認識并了解最優化方法的思路和手段。
本書可供數學與應用數學、信息與計算科學專業的本科生,應用數學、計算數字、運籌學與控制論專業的研究生,理工科相關專業的研究生,對最優化理論與算法感興趣的教師及科技工作者閱讀。
數學等價
為需要找出最大數值的1到30個數值。
說明
可以将參數指定為數字、空白單元格、邏輯值或數字的文本表達式。如果參數為錯誤值或不能轉換成數字的文本,将産生錯誤。如果參數為數組或引用,則隻有數組或引用中的數字将被計算。數組或引用中的空白單元格、邏輯值或文本将被忽略。如果邏輯值和文本不能忽略,請使用函數MAXA來代替。
如果參數不包含數字,函數MAX返回0。
示例
示例1:如果A1:A5包含數字10、7、9、27和2,則:
MAX(A1:A5)等于27
MAX(A1:A5,30)等于30
示例2:如果A1=71、A2=83、A3=76、A4=49、A5=92、A6=88、A7=96。
則公式“=MAX(A1:A7)”返回96。
示例3:課時計算,一個教學班不足60人的按60人計算,超過60人的,每超過1人,課時增加0.006。
公式為=1+MAX(A1-60,0)*0.006
示例4:用Max函數計算個人所得稅,簡單一點吧,假定1000元以下不征稅,1000-2000元,超出1000元的部分按1%征稅,2000-5000元,超出2000元的總分按2%征稅,還要加上2000元的額定稅(2000-1000)*1%=10元;50000元以上,超出5000元的部分按5%征稅,同時加上2000元的額定稅40元。
則公式為=MAX((A1-{1000,2000,5000})*{0.01,0.02,0.05}+{0,10,40},0)
最終簡化為=MAX(A1*{0.01,0.02,0.05}-{10,30,210},0)
Matlab函數
max函數的幾種形式
(1)max(a)
(2)max(a,b)
(3)max(a,[],dim)
(4)[C,I]=max(a)
(5)[C,I]=max(a,[],dim)
舉例說明函數意思
(1)max(a)
如果a是一個矩陣,比如a=[1,2,3;4,5,6],max(a)的意思就是找出矩陣每列的最大值,
本例中:max(a)=[4,5,6]
(2)max(a,b)
如果a和b都是大于1維的矩陣,那麼要求a和b的行列的維數都要相等,函數的結果是比較a和b中每個元素的大小,比如:
a=[1,2,3;4,5,6]b=[4,5,6;7,8,3]
max(a,b)=[4,5,6;7,8,6]
另外,如果a和b中至少有一個是常數,也是可以的。比如:
a=[1,2,3;4,5,6]b=3c=5
max(a,b)=[3,3,3;4,5,6]相信大家看了例子都明白了函數的意思了吧
max(b,c)=5
(3)max(a,[],dim)
這個函數的意思是針對于2維矩陣的,dim是英文字母dimension的縮寫,意思是維數。
當dim=1時,比較的a矩陣的行,也就是和max(a)的效果是一樣的;當dim2時,比較的是a矩陣的行。下面舉個例子:
a=[1,2,3;4,5,6]max(a)=max(a,[],1)=[4,5,6]比較的第一行和第二行的值
max(a,[],2)=[3,6]
(4)[C,I]=max(a)
C表示的是矩陣a每列的最大值,I表示的是每個最大值對應的下标:
下面舉例說明:
還是剛才那個例子:a=[1,2,3;4,5,6][C,I]=max(a)
結果顯示的是C=[4,5,6]I=[2,2,2]返回的是最大值對應的行号。
(5)[C,I]=max(a,[],dim)
同理:如果dim=1時,其結果和[c,i]=max(a)是一樣的。
當dim=2時,同樣上面的矩陣a,我們運行一下:
[c,i]=max(a,[],2)結果是:c=[3,6]i=[3,3]i返回的是矩陣a的列号。