我怎么找到最大(或最小)值的指数矩阵?
9.223视图(30天)
显示旧的评论
“找到”命令只返回的指数矩阵的非零元素。我想知道如何找到的指数最大(或最小)值。
接受的答案
MathWorks支万博1manbetx持团队
2022年3月28日
编辑:MathWorks支万博1manbetx持团队
2021年11月17日
“最小值”和“max”在MATLAB函数返回最小和最大的索引值,分别为一个可选的第二个输出参数。
例如,下面的代码生成一个行向量“M”,其中包含的每一列的最大值的‘一个’,这是3第一列和第二列4。此外,“我”是一个行向量包含行3和4的位置,这2和2,因为这两列的最大值躺在第二行。
= (1 - 2;3 4];
[M,我]= max ()
更多信息在“最小值”和“max”功能,查看文档页下面列出:
找到所有位置的指标最大值(整个矩阵)出现时,您可以使用“查找”功能。
最大= max (max ());
(x, y) =找到(= =最大)
4评论
更多的答案(12)
Juanith霍奇金淋巴瘤
2019年10月8日
一个= [8 2 4;7 3 9)
[M,我]= max((:)) %我这里的指数最大值是你可以改变函数最大值或最小值
[I_row, I_col] = ind2sub(大小(A), I) % I_row行索引和I_col是列索引
3评论
ANKUR库马尔
2017年9月19日
使用这个函数和类型(x, y) = minmat (a)矩阵的最小的位置。例如:
> > =魔法(5)
> > [a, b] = minmat (a)
一个=
1
b =
3
这个作为一个函数保存在你的基地文件夹和使用它。
函数[a, b] = minmat (c)
=大小(c);
total_ele =元素个数(c);
[~,我]= min (c (:));
r =快速眼动(我作为(1));
= r;
b =((我)/ (1))+ 1;
如果= = 0
一个= (1);
b = b - 1;
其他的
= r;
b = b;
结束
结束
4评论
鲁斯
2018年5月10日
编辑:鲁斯
2018年5月10日
//www.tianjin-qmedu.com/matlabcentral/answers/100813-how-do-i-find-the-indices-of-the-maximum-or-minimum-value-of-my-matrix answer_282157
然而备查这显然是解决你的问题,我想说有一个相对的解决方案,不需要声明一个函数。
允许继续任何矩阵a的第一步是找到完整的矩阵的最小值:
最小= min (min (A));
两分钟需要首先找到最小值的列,然后找到最小值的最小值。(可能有一个更简单的方法)。
找到这个值的指数可以是这样的:
(x, y) =找到(=最低);
两条线会比一个完整的简单函数。
Konstantinos Fragkakis
2018年8月27日
编辑:Konstantinos Fragkakis
2018年8月27日
函数来计算最小值及其指标,在一个多维数组——为了找到马克斯,只是取代最小(数组(:))声明中最大(数组(:))。
函数(至少,指数)= minmat(数组)
%功能:计算多维数组中的最小值及其指标
% - - - - - - - - - - - - - - - - - - - -逻辑描述
%首先,识别Matlab公约编号多维数组的元素。
%首先是第一维的元素
%之后的第二等等
%在每个迭代中,除确定最小数量的维度进行调查
%其余维度的索引(检查特殊情况下)
%的整数标识的最小的“新数”,用于下一个循环
%的步骤重复多次维度的数量(e。g 2-by-3-by-4-by-5表,重复4次)
neldim =大小(数组);%每个维度的长度
ndim =长度(neldim);%的维度
(至少我]= min(数组(:));
剩余= 1;%与评价维度的结束
指数= [];%初始化指数
而剩下的~ = ndim + 1%打破最后一维循环后评估
%把整数的每个维度的值- - >确定整数所属的组
快速眼动(r =我neldim(剩余));%其余标识指数维度下的评估
int =修复(I / neldim(剩余));%的整数是用于下一次迭代
如果r = = 0%赔偿被最后一个元素的“集团”——>指数等于维度下的评估
new_index = neldim(剩余的);
其他的%补偿组的数量——>增加1 (e。g如果余数8/3 = 2和整数= 2,这意味着你在2 + 1集团在第二位置)
int = int + 1;
new_index = r;
结束
int I =;%调整部门的新号码。这是一组th
指数=(指数new_index);%添加当前指数
剩余=剩余+ 1;
结束
结束
Hazoor艾哈迈德
2021年2月28日
编辑:Hazoor艾哈迈德
2021年2月28日
A =兰迪(45岁,5)
(先生,mir) = min ()
(mc,麦克风)= min(先生)
(米尔(mic)、麦克风)
0评论
彼得亚雷Franaszczuk
2022年12月13日
编辑:彼得亚雷Franaszczuk
2022年12月13日
你可以叫马克斯只有一次,没有找到(这需要通过整个二维矩阵):
位于印第安纳州[M] = max ((:));
[r、c] = ind2sub(大小(A),印第安纳州);
M是最大,r和c是它所在的行和列。