一起來學演化計算-matlab基本函數min
覺得有用的話,歡迎一起討論相互學習~
- 找到數組中最小的元素
語法
- M = min(A) 返回A的最小元素
- 如果A是一個向量,那么min(A)返回A的最小元素
- 如果A是一個矩陣,那么min(A)是一個行向量,包含每一列的最小值
- 如果A是一個多維數組,那么min(A)沿着大小不等於1的第一個數組維操作,將元素視為向量。這個維度的大小變為1,而所有其他維度的大小保持不變。如果A是第一個維度為0的空數組,那么min(A)返回一個與A大小相同的空數組。
- M = min(A,[],dim) 返回沿dim維數的最小元素,例如,如果A是一個矩陣,那么min(A,[],2)是一個列向量,包含每一行的最小值。因為第一維是列,第二維才是行,所以按照行來取最小值,則得到的是一個列向量
- [M,I] = min( ___ )找到A的最小值的索引,並使用前面語法中的任何輸入參數在輸出向量I中返回它們。如果最小值出現多次,那么min返回與第一次出現相對應的索引
- C = min(A,B) 返回一個數組,其中最小的元素取自A或B。
- ___ = min( ___ ,nanflag) 指定是否在計算之前的任何語法時包含或省略NaN值。對於單個數組的情況,要在不指定dim的情況下指定nanflag,請使用min(A,[],nanflag)。例如,min(A,[],' includesenan')在一段時間內包含所有NaN值,min(A,[],'omitnan')會忽略它們。
示例
取向量中最小值
A = [23 42 37 15 52];
M = min(A)
M =
15
取向量中最小的復數
A = [-2+2i 4+i -1-3i];
min(A)
ans =
-2.0000 + 2.0000i
二維矩陣中每列的最小值
A = [2 8 4; 7 3 9]
A =
2 8 4
7 3 9
M = min(A)
M =
2 3 4
二維矩陣中每行的最小值
A = [1.7 1.2 1.5; 1.3 1.6 1.99]
A =
1.7000 1.2000 1.5000
1.3000 1.6000 1.9900
M = min(A,[],2)
M =
1.2000
1.3000
返回最小值的索引
A = [1 9 -2; 8 4 -5]
A =
1 9 -2
8 4 -5
[M,I] = min(A)
M =
1 4 -5
I =
1 2 2
從A或B中取對應的較小值
A = [1 7 3; 6 2 9]
A =
1 7 3
6 2 9
B = 5;
C = min(A,B)
C =
1 5 3
5 2 5
找到矩陣中的最小值
- 找到矩陣中的最小值即是把矩陣轉換成一個一維向量,然后從中挑選出最小值
A = [8 2 4; 7 3 9]
A =
8 2 4
7 3 9
A(:)
ans =
8
7
2
3
4
9
[M,I] = min(A(:))
M =
2
I =
3
- I是包含最小元素的A(:)的索引
- 現在,使用ind2sub函數來提取與最小元素對應的A的行和列索引
[I_row, I_col] = ind2sub(size(A),I)
I_row =
1
I_col =
2
- 如果你僅僅需要找到矩陣中的最小值而不必關心其所在位置只需要執行min函數兩次
M = min(min(A))
M =
2
有NaN的情況
創建一個向量並計算它的最小值,不包括NaN值
A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
M = min(A,[],'omitnan')
M =
-2.9500
min(A)也會產生這個結果,因為'omitnan'是默認選項
使用“includes enan”標志返回NaN
M = min(A,[],'includenan')
M =
NaN