通过举例彻底搞懂Matlab中max函数和min函数的用法(求最大值和最小值)

  • Post author:
  • Post category:其他


今天做Matlab作业要求让找出最大值和最小值,查了一些资料,进行总结一下,话不多说,直接进入主题。max和min函数主要有以下几种用法。


max(A):





如果A是一个行向量,即1 x M维的向量,返回的是这一行的最大值。

例如:

在matlab的命令行窗口定义一个行向量:

A = [4 3 2 5 6 8];      1 x 6

然后使用max(A),结果为:8 。

如果A是一个列向量,即 M x 1维的向量,返回的是这一列的最大值。

例如:

在matlab的命令行窗口定义一个列向量:

A = [4;3;2;5;6;8]      6 x 1

然后使用max(A),结果为:8 。

如果A是一个矩阵,即 M x N维的矩阵,max(A)函数则将该矩阵的每一列进行比较,即将N列的数据分别找出最大值,返回的是1 x N维的行向量,因为1列求一个最大值,所以N列就要求N个最大值。

例如:

在matlab的命令行窗口定义一个矩阵:

A = [4 6 2 3 5;6 8 2 9 1;12 23 18 2 7]       —>3 x 5(三行五列,M=3,N=5)

然后使用max(A),结果为:12    23    18     9     7

如图所示:


总结:可以记住一个规律,即:max(A)返回的是一个行向量(返回一个值那就是1 x 1的行向量),向量的第i个元素就是A(A可以是行向量列向量和矩阵)的第i列上的最大值。

max(A,[],dim):

这个函数主要在A是一个矩阵的时候被使用。

dim的全称是dimension,意思是维数。

dim可以取1或2。


当取1的时候,意思和上面的max(A)所得到的结果是一样的,取得是A矩阵每一列的最大值,返回的是一个1 x N维的行向量,这个行向量的第i个值,代表的是这个矩阵A第i列的最大值。

例如:

在matlab的命令行窗口定义一个矩阵:

A = [4 6 2 3 5;6 8 2 9 1;12 23 18 2 7]       —>3 x 5(三行五列,M=3,N=5)

然后使用max(A,[],1),结果为:12    23    18     9     7

如图所示:


当dim取2的时候,得到的是A矩阵每一行的最大值,返回的是一个Mx 1维的列向量,这个列向量的第i个值,代表的是这个矩阵A第i行的最大值。注意和dim等于1时的区别,可以这样理解:dim等于1时是找每一列的最大值,N列就会有N个值;dim等于2时是找该矩阵每一行的最大值,M行就会有M个值。

例如:

在matlab的命令行窗口定义一个矩阵:

A = [4 6 2 3 5;6 8 2 9 1;12 23 18 2 7]       —>3 x 5(三行五列,M=3,N=5)

然后使用max(A,[],2),结果为:6;9;3

如图所示:


如果我们不仅想要得到最大值或者是最小值,我们还想得到最大值或者是最小值的位置呢?

[Y, Z] = max(A, [], dim);

这个函数不仅使得我们能得到最大值或者是最小值,我们还能得到所在的列或者是行。

Y:在这里得到的是返回的最大值或者是最小值的集合,例如上面的max(A,[],dim):dim等于1时,则返回结果赋值给了Y,dim等于2时,则返回结果赋值给了Y,即Y用于接收得到的最大或者是最小值。


Z:若dim=1,这里得到的是Y结果中每一个值在矩阵A中的行数,即Y中的值出现在矩阵A的第几行。

例如:

在matlab的命令行窗口定义一个矩阵:

A = [4 6 2 3 5;6 8 2 9 1;12 23 18 2 7]       —>3 x 5(三行五列,M=3,N=5)

如图所示:

然后使用[Y,Z] = max(A,[],1)

结果为:Y = 12    23    18     9     7

Z =  3     3       3     2     3

即Y中的每一个最大值,它所在矩阵中的行数被保存在了Z中。


Z:若dim=2,这里得到的是Y结果中每一个值在矩阵A中的列数,即Y中的值出现在矩阵A的第几列。

例如:

在matlab的命令行窗口定义一个矩阵:

A = [4 6 2 3 5;6 8 2 9 1;12 23 18 2 7]       —>3 x 5(三行五列,M=3,N=5)

如图所示:

然后使用[Y,Z] = max(A,[],2)

结果为:Y =  6

9

23

Z =  2

4

2

如图所示:

即Y中的每一个最大值,它所在矩阵中的列数被保存在了Z中。


总结:dim等于1时,Y中的值是矩阵A按照列求最大值的集合,Z中保存了最大值在矩阵中的行号;dim等于2时,Y中的值是矩阵A按照行求最大值的集合,Z中保存了最大值在矩阵中的列号。


min的用法和上面一样,只需要把max这个关键字换做min即可。



转载请注明出处。



版权声明:本文为BaoITcore原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。