一起来学演化计算-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
请发表评论