如何在MATLAB中找到数组中的最大值及其索引?
假设我有一个数组,如何在MATLAB中找到数组中的最大值及其索引?,matlab,max,matrix-indexing,Matlab,Max,Matrix Indexing,假设我有一个数组,a=[25447]。返回最大值及其索引的函数是什么 例如,在我的例子中,函数应该返回7作为最大值,4作为索引。函数是max。要获得第一个最大值,应执行以下操作 [val, idx] = max(a); val是最大值,idx是其索引。您可以使用max()获得最大值。max函数还可以返回向量中最大值的索引。为此,将调用max的结果分配给一个两元素向量,而不仅仅是一个变量 e、 g。 z是你的数组 >> [x, y] = max(z) x = 7 y = 4
a=[25447]
。返回最大值及其索引的函数是什么
例如,在我的例子中,函数应该返回7作为最大值,4作为索引。函数是
max
。要获得第一个最大值,应执行以下操作
[val, idx] = max(a);
val
是最大值,idx
是其索引。您可以使用max()获得最大值。max函数还可以返回向量中最大值的索引。为此,将调用max的结果分配给一个两元素向量,而不仅仅是一个变量
e、 g。
z是你的数组
>> [x, y] = max(z)
x =
7
y =
4
这里,7是第四个位置(索引)的最大数字。对于2D数组(矩阵),您可以使用:
[val, idx] = max(A, [], 2);
idx部分将包含包含每行最大元素的列号。对于矩阵,您可以使用:
[M,I] = max(A(:))
I是包含最大元素的(:)的索引
[I_row, I_col] = ind2sub(size(A),I)
现在,使用ind2sub函数提取对应于最大元素的行和列索引
[I_row, I_col] = ind2sub(size(A),I)
资料来源:3D案例 修改Mohsen对3D阵列的回答:
[M,I] = max (A(:));
[ind1, ind2, ind3] = ind2sub(size(A),I)
这将返回矩阵中的最大值
max(M1(:))
这将返回该值的行和列
[x,y]=ind2sub(size(M1),max(M1(:)))
对于最小值,只需将单词max与min互换即可。例如:
max_a = max(a)
a.index(max_a)
在命令行中写入
max
,按F1键获取帮助(如果在Windows系统上,其他系统将使用另一个键)并阅读文档。有许多教程可以让您熟悉基本的Matlab函数:)(还有命令窗口中可用的启动doc
)包含几乎所有您需要了解的关于matlab函数、示例和教程的内容。分号是什么?@TechNazil matlab通常会出于某种不可原谅的原因在标准输出中公布每个变量赋值。分号会抑制它。这非常有用!