求矩阵中的最大值?

조회수:4220(최근30일)
Sabarinathan Vadivelu
Sabarinathan Vadivelu 2012年년9월5일
댓글: 沃尔特罗伯森 2021년3월15일
我有一个3X3矩阵
6 8 9.
7 10 11.
21日22日8
如何找到此矩阵的最大值?
댓글수:2
Khoirom Motilal.
Khoirom Motilal. 2016년월일17
  • clc
  • 关闭所有
  • 清除所有
  • X = (99 67 65;
  • 63 62 61;
  • 41 40 9];
  • MAX = X (1,1);
  • 因为我= 1:3
  • j = 1:3
  • 如果max <= x(i,j);
  • max = x(i,j);
  • 结尾
  • 结尾
  • 结尾
  • disp (MAX)

댓글을달려면로그인하십시오。

채택된답변

迈克尔·沃尔克
迈克尔·沃尔克 2012年년9월5일
편집:史蒂文勋爵 2020년월25일
从R2018B开始,您可以使用以下命令在数组中找到所有元素的最大值:
m = max(a,[],“所有”);
对于以前的版本,使用:
M = max ((:));
댓글수:1
图像分析
图像分析 2012年년9월5일
为了获得它的位置,接受max的两个输出:
[maxvalue,linearindexesofmaxes] = max(a(:));
注意,可以有一个以上的位置的最大值。要获取行和列(而不是线性索引),你可以使用ind2subs()或find():
[Rowsofmaxes Colsofmaxes] =查找(a == maxvalue);

댓글을달려면로그인하십시오。

추가답변(5개)

Azzi Abdelmalek.
Azzi Abdelmalek. 2012年년9월5일
max (max ())
댓글수:3
Jonathan Posada
Jonathan Posada 2016年년2월20일
这适用于2D情况,但如果ndims(A)>2,那么max(max(A))将返回一个矩阵。我相信OP想要在所有维度上获得最大的元素

댓글을달려면로그인하십시오。


汤姆
汤姆 2020년1¼28일
m = max ( 一种 ,[],'全部') 找到所有元素的最大值 一种 。此语法适用于MATLAB®版本R2018B及更高版本。
댓글수:2
史蒂文勋爵
史蒂文勋爵 2020년월25일
当您想指定一个维度(包括'all')时,需要[]作为第二个输入。函数调用 最大(a,'全部') 只有当A和'all'的大小兼容时才有效。
>>最大(1:3,“所有”
ans =.
97 108 108.
>>最大(1:3,[],“所有”
ans =.
3.

댓글을달려면로그인하십시오。


Dmaldo01
Dmaldo01 2016년월일22
편집:Dmaldo01 2016년월일22
这将适用于所有维度。如果比IND2SUB更有效,则少于16000个元素。
[m,index] = maxel(matvar)
指数=大小(MatVar);
指数=指数* 0;
M = max (MatVar (:));
a = find(matvar == max(matvar(:)),1);
为了i = 1:长度(索引)
指数(i) =国防部(装天花板(A),指数(i));
一个= /指数(i);
结尾
索引(index == 0)= index(index == 0);

Yokesh
Yokesh 2019年년5월16일
如果矩阵维度为“n”,则可以通过以下方式找到Max元素:
max(max(maxn ^ 2((a))......)
我们必须包括n^2乘以max
댓글수:2
沃尔特罗伯森
沃尔特罗伯森 2020년월25일
它也只有n个最大调用。

댓글을달려면로그인하십시오。


JPS
JPS 2021년월6일
或者你可以用,
m = max(max(a));
댓글수:2
沃尔特罗伯森
沃尔特罗伯森 2021년3월15일
a = [1 3 2 5;7 9 12 8;12 8 9 0]
A = 3×4
1 3 2 5 7 9 12 8 12 8 9 0
[best3, best3idx] = maxk(A(:),3)
最好的3 = 3×1
12 12 9
best3idx = 3×1
3 8 5.
三个最大值为12,12和9,而不是12,9和8.如果您对三个最大唯一值感兴趣,那么您需要明确地考虑一些值不止一次。
k = 3;
uA =独特(,“排序”);
nresults = min(长度(ua),k);
cell(nresults, 1);
为了K = 1: K
this_max = uA (end-K + 1);
结果{K, 1} = this_max;
结果{k,2} =查找(a == this_max)。';
结尾
disp(结果)
{[12]} {[3]} {[9]} {[5 9]} {[8]} {[6 11] {[6 11]}
输出是一个单元格数组,其中第一列为最大值,第二列为数组的所有线性索引。可以修改代码来给出行和列输出,而不需要做太多更改。
代码有 不是 假设每个值的出现次数相同(如果已知为真,则可以创建一个数字数组而不是单元格数组)。

댓글을달려면로그인하십시오。

태그

제품

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

翻译的