Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中找到数组中的最大值及其索引?_Matlab_Max_Matrix Indexing - Fatal编程技术网

如何在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通常会出于某种不可原谅的原因在标准输出中公布每个变量赋值。分号会抑制它。这非常有用!