MATLAB学习(4)——min

矩阵中最小的元素

语法:

1 M = min(A)             
%返回A的最小元素。
如果A是一个向量,则min(A)返回A的最小元素。如果A是矩阵,则min(A)是包含每列最小值的行向量。如果A是一个多维数组,则min(A)沿着大小不等于1的第一个数组维度进行操作,将这些元素作为向量处理。此尺寸的尺寸变为1,而所有其他尺寸的尺寸保持不变。如果A是第一维0的空数组,则min(A)返回一个与A的大小相同的空数组。
2 M = min(A,[],dim)      
%返回沿dim维度的最小元素。例如,如果A是矩阵,那么min(A,[],2)是包含每行最小值的列向量。
3 [M,I] = min(___)
%找到A的最小值的索引,并使用前面语法中的任何输入参数将它们返回到输出向量I中。如果最小值出现多次,则min返回与第一次出现相对应的索引。
4 C = min(A,B)
%返回从A或B中取出最小元素的数组。
5 ___ = min(___,nanflag)
%指定是否在任何前面的语法的计算中包含或省略NaN值。对于单输入的情况,要指定nanflag而不指定dim,请使用min(A,[],nanflag)。例如,min(A,[],'includenan')包含A中的所有NaN值,而min(A,[],'omitnan')忽略它们。

Input Arguments

(1)A是输入数组,指定为标量,向量,矩阵或多维数组。

  • 如果A很复杂,那么min(A)返回幅度最小的复数。 如果幅度相等,则min(A)返回幅值最小且相位角最小的值。
  • 如果A是标量,那么min(A)返回A.
  • 如果A是一个0乘0的空数组,那么min(A)也是。

(2)dim是要一起操作的维度,指定为正整数标量。如果未指定值,则默认值是第一个数组维度,其大小不等于1。

dim表示长度减至1的维度。除非size(A,dim)为0,否则size(M,dim)为1,而所有其他维度的维度保持不变。如果size(A,dim)为0,那么min(A,dim)返回一个与A相同大小的空数组。

考虑一个二维输入数组,A:

  • 如果dim = 1,则min(A,[],1)返回包含每列中最小元素的行向量。

          

  • 如果dim = 2,则min(A,[],2)返回包含每一行中最小元素的列向量。

         

如果dim大于ndims(A),则返回A

(3)B 是输入数组,指定为标量,矢量,矩阵或多维数组。数字输入A和B必须具有相同的尺寸或具有兼容的尺寸(例如,A是M乘N矩阵,B是标量或1乘N行矢量)。有关更多信息,请参阅基本操作的兼容阵列尺寸。

  • 如果A和B是日期时间,持续时间或分类数组,那么它们必须是相同的大小,除非它是标量。
  • A和B必须是相同的数据类型,除非是双精度型。在这种情况下,另一个数组的数据类型可以是单个,持续时间或任何整数类型。
  • 如果A和B是序数分类数组,它们必须具有相同顺序的相同类别组。

(4)nanflag - NaN条件

'omitnan'(默认)| 'includenan'
NaN条件,指定为以下值之一:

  • 'omitnan' - 忽略输入中的所有NaN值。
  • 'includenan' - 在计算输入中包含NaN值。

对于datetime数组,您也可以使用'omitnat'或'includenat'来分别省略和包含NaT值。

Output Arguments

(1)M是最小值,作为标量,向量,矩阵或多维数组返回。大小(M,dim)为1,除非尺寸(A,dim)为0,否则所有其他尺寸的尺寸都与A中相应尺寸的尺寸相匹配。如果尺寸(A,dim)为0,则M是与A相同大小的空阵列。

(2)I是索引到A的最小值,作为标量,向量,矩阵或多维数组返回。我与M的大小相同。如果最小元素出现多次,那么我包含第一次出现的值的索引。

(3)C是来自A或B的最小元素,作为标量,向量,矩阵或多维数组返回。 C的大小由A和B的维度的隐式扩展确定。有关更多信息,请参阅基本操作的兼容阵列大小。

C的数据类型取决于A和B的数据类型:

  • 如果A和B是相同的数据类型,则C匹配A和B的数据类型。
  • 如果A或B是单一的,那么C是单一的。
  • 如果A或B是一个整型数据类型,另一个是标量double,那么C将采用整型数据类型。

Examples

    (1)Create a vector and compute its smallest element

A = [23 42 37 15 52]; %.
M = min(A) 
M =
    15

(2)Create a complex vector and compute its smallest element, that is, the element with the smallest magnitude.
A = [-2+2i 4+i -1-3i];  %
min(A)
ans =
  -2.0000 + 2.0000i

(3)Create a matrix and compute the smallest element in each column.
A = [2 8 4; 7 3 9]
A =
     2     8     4
     7     3     9
M = min(A)
M =
     2     3     4

(4)Create a matrix and compute the smallest element in each row
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

(5)Create a matrix A and compute the smallest elements in each column as well as the row indices of A in which they appear.
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

(6)Create a matrix and return the smallest value between each of its elements compared to a scalar.
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

(7)Create a matrix A and use its column representation, A(:), to find the value and index of the smallest element.
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 is the index of A(:) containing the smallest element.

(8)Now, use the ind2sub function to extract the row and column indices of Acorresponding to the smallest element.
[I_row, I_col] = ind2sub(size(A),I)
I_row =
     1
I_col =
     2

   (9) If you need only the minimum value of A and not its index, call the min function twice.

M = min(min(A))
M =
     2

(10)Create a vector and compute its minimum, excluding NaN values.
A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
M = min(A,[],'omitnan')
M =
   -2.9500

(11)min(A) will also produce this result since 'omitnan' is the default option.Use the 'includenan' flag to return NaN.
M = min(A,[],'includenan')
M =
   NaN


posted @ 2018-06-26 10:54  Jasmineee  阅读(4128)  评论(0编辑  收藏  举报