本文讲解Matlab中数据分析处理相关的函数,max最值函数属于Matlab数据处理中最基本的操作之一。可以用来获取一组数据、多维数据中的最大值。文中,将给出几个实例来说明max函数的用法。
max函数基本用法
M = max(A)
M = max(A,[],dim)
[M,I] = max(___)
C = max(A,B)
___ = max(___,nanflag)
max函数用法介绍
M=max(A)返回A的最大元素。
- 如果A是向量,则max(A)返回A的最大元素。
- 如果A是矩阵,则max(A)是包含每列最大值的行向量。
- 如果A是多维数组,则max(A)沿着大小不等于1的第一个数组维度操作,将元素视为向量。此维度的大小变为1,而所有其他维度的大小保持不变。如果A是第一维度为0的空数组,则max(A)返回与A大小相同的空数组。
M=max(A,[],dim)返回沿尺寸dim的最大元素。例如,如果A是矩阵,则max(A,[],2)是包含每行最大值的列向量。
[M,I]=max(_)查找A的最大值的索引,并使用前面语法中的任何输入参数将其返回到输出向量I中。如果最大值出现多次,则max返回与第一次出现对应的索引。
C=max(A,B)返回一个数组,其中最大的元素取自A或B。
_=max(_,nanflag)指定在前面任何语法的计算中是否包含或忽略NaN值。对于单输入情况,要指定nanflag而不指定dim,请使用max(A,[],nanflag)。例如,max(A,[],’includenan’)包含A中的所有NaN值,而max(A,[],’omitnan’)忽略它们。
max函数实例
向量元素最大值
创建一个向量,并得出最大值,代码如下:
>> A = [23 42 37 18 52];
>> M = max(A)
M =
52
复数最大值
创建一个复向量并计算其最大元素,即幅值最大的元素。
>> A = [-2+2i 4+i -1-3i];
>> max(A)
ans =
4.0000 + 1.0000i
每个矩阵列中最大的元素
创建一个矩阵并计算每列中最大的元素。
>> A = [2 8 4; 7 3 9]
A =
2 8 4
7 3 9
>> M = max(A)
M =
7 8 9
每个矩阵行中的最大元素
创建一个矩阵并计算每行中最大的元素。
>> 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 = max(A,[],2)
M =
1.7000
1.9900
最大元素索引
创建一个矩阵a,计算每列中最大的元素,以及它们所在的a的行索引。
>> A = [1 9 -2; 8 4 -5]
A =
1 9 -2
8 4 -5
>> [M,I] = max(A)
M =
8 9 -2
I =
2 1 1
最大元素比较
创建一个矩阵,并返回其每个元素之间与标量相比的最大值。
>> A = [1 7 3; 6 2 9]
A =
1 7 3
6 2 9
>> B = 5;
>> C = max(A,B)
C =
5 7 5
6 5 9
矩阵中最大的元素
创建一个矩阵a,并使用其列表示形式a(:)来查找最大元素的值和索引。
A =
8 2 4
7 3 9
>> A(:)
ans =
8
7
2
3
4
9
>> [M,I] = max(A(:))
M =
9
I =
6
I是A(:)中最大元素的索引,即位置。
我们可以,使用ind2sub函数提取与最大元素对应的A的行和列索引。
>> [I_row, I_col] = ind2sub(size(A),I)
I_row =
2
I_col =
3
如此,就完美的确定了一个二维矩阵中最大元素的具体位置。
如果只需要A的最大值而不需要它的索引,那么调用max函数两次。
>> M = max(max(A))
M =
9
涉及NaN的最大元素
创建一个向量并计算其最大值,不包括NaN值。
>> A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
>> M = max(A,[],'omitnan')
M =
3.9800
max(A)也将产生此结果,因为”omitnan”是默认选项。
使用“includenan”标志返回NaN。
>> M = max(A,[],'includenan')
M =
NaN
最后,再补充点注意事项,关于多维数组的max函数使用:
如果dim=1,则max(A,[],1)返回包含每列中最大元素的行向量。
如果dim=2,则max(A,[],2)返回包含每行中最大元素的列向量。
原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/3744.html