要找到一个矩阵的最大价值?

562 vu (au课程最后的30天时间)
Sabarinathan Vadivelu
Sabarinathan Vadivelu 勒2012年9月5日
已经看到: 史蒂文的主 勒2022年12月11日
我有一个3 x3的矩阵
6 8 9
7 10 11
21日22日8
如何找到这个矩阵的最大价值?
2 commentaires
KHOIROM Motilal
KHOIROM Motilal 勒2016年3月17日
改变了(e):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)

Connectez-vous倒评论者。

响应被接受的人

迈克尔·沃尔克
迈克尔·沃尔克 勒2012年9月5日
改变了(e):史蒂文的主 勒2020年3月25日
从R2018b开始,您可以使用以下命令找到最大在数组中所有元素:
M = max ([],“所有”);
在以前的版本中,使用:
M = max ((:));
4 commentaires
史蒂文的主
史蒂文的主 勒2022年12月11日
马克斯 函数的第一个两个输入你想比较两个矩阵的值。如果你只是想计算出最大的一个矩阵,你需要使用第二个矩阵作为一个占位符。如果你写这样的东西,你要求的最大一个矩阵的元素和值1沿着1号还是你要求的最大尺寸?
马克斯(1)
打破这种模棱两可,语法解释为前(最大的元素和值1),下面是后者(最大第一维度)。
马克斯([],1)

Connectez-vous倒评论者。

加德答案(5)

Azzi Abdelmalek
Azzi Abdelmalek 勒2012年9月5日
max (max ())
4 commentaires
为副总经理
为副总经理 勒2022年12月11日
不是,这是一个好主意,但是对于任意数量的维度:
一个=兰德(100100100年,10);%一个相当大的ND数组
%找到全球最大的一个
maxval = max (A);
n = 2: ndims (A)
maxval = max (maxval);
结束
maxval
maxval = 1.0000
还没有很长一段时间,但根据我的经验,这种迭代方法 显著的速度优势更大一天老版本中的数组(2 x-3x尽快马克斯((:))我用数组)。我不记得如果R2012x优势仍然存在,但它确实在R2009b。在当前版本中,使用向量化或“所有”快小数组和大致相当大的数组。这是硬件,所以我不保证它是普遍的。
除了性能,很难证明这冗长的方法规范化技术,如果只是为了可读性。
这不是我推荐的,我怀疑遗留性能是典型的原因,人们被吸引到的方法,但我认为这是有趣的老时间的缘故。

Connectez-vous倒评论者。


汤姆
汤姆 勒2020年1月28日
= max ( 一个 [],'所有') 发现最大的所有元素 一个 。这个语法是有效R2018b后来MATLAB®版本。
2 commentaires
史蒂文的主
史蒂文的主 勒2020年3月25日
[]的第二个输入是必需的,当您想要指定一个维度,包括“所有”。函数调用 马克斯(A,“所有”) 只如果和“所有”是协调地大小的。
> > max (1:3,“所有”)
ans =
97 108 108
> > max (1:3, [],“所有”)
ans =
3

Connectez-vous倒评论者。


Dmaldo01
Dmaldo01 2016年勒22日Avr的
改变了(e):Dmaldo01 2016年勒22日Avr的
这将适用于所有尺寸。如果更多的效率比ind2sub不到16000个元素。
[M,指数]= maxEl (MatVar)
指数=大小(MatVar);
指数=指数* 0;
M = max (MatVar (:));
=找到(MatVar = = max (MatVar (:)), 1);
i = 1:长度(索引)
指数(i) =国防部(装天花板(A),指数(i));
一个= /指数(i);
结束
指数(指数= = 0)=指数(指数= = 0);

Yokesh
Yokesh 梅勒2019
如果矩阵维度是“n”,那么最大元素可以发现:
马克斯(max (..... maxn ^ 2 (())…)
我们必须包括n ^ 2 *马克斯
2 commentaires
沃尔特·罗伯森
沃尔特·罗伯森 勒2020年3月25日
也只会是n马克斯调用。

Connectez-vous倒评论者。


JPS
JPS le Fev 2021
或者你可以使用,
M = max (max ());
2 commentaires
沃尔特·罗伯森
沃尔特·罗伯森 勒2021年3月15日
一个= [1 2 3 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 ((:), 3)
best3 = 3×1
12 12 9
best3idx = 3×1
3 8 5
这三个最大值是12日,12日和9日,不是12,9日和8。如果你感兴趣的三个最大的惟一值,那么您需要显式地考虑到一些值不止一次发生。
k = 3;
uA =独特(,“排序”);
nresults = min(长度(uA)、k);
结果=细胞(nresults, 1);
K = 1: K
this_max = uA (end-K + 1);
结果{K, 1} = this_max;
结果{K, 2} =找到(= = this_max)。”;
结束
disp(结果)
{[12]}{8 [3]}{[9]}{[5 9]}{[8]}{11 [6]}
输出是一个单元阵列中,第一列给你最大的价值,和第二列给你所有的线性指标到数组中。可以修改的代码给行和列输出而不是没有多少改变。
的代码是 假设出现的数量是相同的为每个值(如果这是真的,那么一个数值数组可以创建,而不是单元阵列)。

Connectez-vous倒评论者。

类别

在知道加瑟尔描述性统计帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的