求矩阵的最大值?

4,385人次(过去30天)
Sabarinathan Vadivelu
Sabarinathan Vadivelu 2012年9月5日
回答: Sneha Baranwal2021年8月16日
我有一个3X3的矩阵
6 8 9
7 10 11
21日22日8
如何从这个矩阵中找到最大值?
2的评论
KHOIROM Motilal
KHOIROM Motilal 2016年3月17日
  • clc
  • 关闭所有
  • 清除所有
  • X = (99 67 65;
  • 63 62 61;
  • 41 40 9];
  • MAX = X (1,1);
  • 因为我= 1:3
  • j = 1:3
  • 如果马克思< = X (i, j);
  • MAX = X (i, j);
  • 结束
  • 结束
  • 结束
  • disp (MAX)

登录评论。

接受的答案

迈克尔·沃尔克
迈克尔·沃尔克 2012年9月5日
编辑:史蒂文的主 2020年3月25日
从R2018b开始,可以使用以下命令查找数组A中所有元素的最大值:
M = max(A, [],“所有”);
对于以前的版本,使用:
M = max ((:));
1评论
图像分析
图像分析 2012年9月5日
为了获得它的位置,接受max的两个输出:
[maxValue, linearindexesofmax] = max(A(:));
注意,在多个位置可以有最大值。要获取行和列(而不是线性索引),可以使用ind2subs()或find():
[rowsOfMaxes colsOfMaxes] = find(A == maxValue);

登录评论。

更多的答案(6)

Azzi Abdelmalek
Azzi Abdelmalek 2012年9月5日
max (max ())
3评论
乔纳森·小波
乔纳森·小波 2016年2月20日
这适用于2D情况,但如果ndims(A)>2,那么max(max(A))将返回一个矩阵。我相信OP想要所有维度上的最大元素

登录评论。


汤姆
汤姆 2020年1月28日
= max ( 一个 [], '所有') 的所有元素的最大值 一个 .此语法适用于MATLAB®版本R2018b和更高版本。
2的评论
史蒂文的主
史蒂文的主 2020年3月25日
当您想要指定一个维度(包括'all')时,第二个输入[]是必需的。函数调用 马克斯(A,“所有”) 仅当A和'all'大小一致时有效。
> > max (1:3,“所有”
ans =
97 108 108
> > max (1:3, [],“所有”
ans =
3.

登录评论。


Dmaldo01
Dmaldo01 2016年4月22日
编辑:Dmaldo01 2016年4月22日
这将适用于所有维度。如果在少于16000个元素的情况下比ind2sub更有效。
[M,指数]= maxEl (MatVar)
指数=大小(MatVar);
指数=指数* 0;
M = max (MatVar (:));
=找到(MatVar = = max (MatVar (:)), 1);
i = 1:长度(索引)
指数(i) =国防部(装天花板(A),指数(i));
一个= /指数(i);
结束
指数(指数= = 0)=指数(指数= = 0);

Yokesh
Yokesh 2019年5月16日
如果矩阵维数为'n',则可通过:
max (max(…maxn ^ 2(())…)
我们必须包括n²* max
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年3月25日
也只有n个最大调用。

登录评论。


JPS
JPS 2021年2月6日
或者你可以用,
M = max (max ());
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年3月15日
A = [1 3 2 5;7 9 12 8;12 8 9 0]
一个= 3×4
1 3 2 5 7 9 12 8 12 8 9 0
[best3, best3idx] = maxk(A(:),3)
best3 = 3×1
12 12 9
best3idx = 3×1
3 8 5
三个最大值是12、12和9,而不是12、9和8。如果您对三个最大唯一值感兴趣,那么您需要显式地考虑一些值出现不止一次。
k = 3;
uA =独特(,“排序”);
nresults = min(length(uA), k);
result = cell(nresults, 1);
K = 1: K
this_max = uA (end-K + 1);
结果{K, 1} = this_max;
结果{K, 2} =找到(= = this_max)。”;
结束
disp(结果)
{[12]} {[3 8]} {[9]} {[5 9]} {[8]} {[6 11]}
输出是一个单元格数组,其中第一列为最大值,第二列为数组的所有线性索引。可以修改代码以给出行和列输出,而不需要做太多修改。
的代码是 假设每个值的出现次数是相同的(如果这是真的,那么可以创建一个数字数组而不是单元格数组)。

登录评论。


Sneha Baranwal
Sneha Baranwal 2021年8月16日
k = 3;
uA =独特(, “排序” );
nresults = min(length(uA), k);
result = cell(nresults, 1);
K = 1: K
this_max = uA (end-K + 1);
结果{K, 1} = this_max;
结果{K, 2} =找到(= = this_max)。”;
结束
disp(结果)

标签

s manbetx 845

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!