gpt4 book ai didi

matlab - 如何找到 3D MATLAB 矩阵中最大元素的位置?

转载 作者:行者123 更新时间:2023-12-02 08:19:32 24 4
gpt4 key购买 nike

我有一个大小为 100*10*1344 的 3D matlab 矩阵。

我想找到矩阵最大元素的三个索引。

当我尝试使用命令 find 查找它时,我得到:

>> [i j k]=find(max(A(:))==A)
i =
52
j =
9601
k =
1

但是使用这些索引会得到以下结果:

>> A(i ,j, k)
??? Index exceeds matrix dimensions.

如何解决问题??

最佳答案

你不能有 find返回三个索引,只有两个。第三个输出是值,而不是索引。

我建议你得到一个单一的索引,它将是一个 linear index .您可以将其直接用于 A,或使用 ind2sub 转换为三个索引.

例子:

A = rand(3,4,5); % example 2D array
ind = find(max(A(:))==A(:));
A(ind) % use linear index directly into A
[ii, jj, kk] = ind2sub(size(A), ind); % or convert to three indices...
A(ii, jj, kk) % ...and use them into A

此外,如果您只需要第一次出现的最大值(如果有多个),您可以使用 max 的第二个输出。而不是 find:

A = rand(3,4,5); % example 2D array
[~, ind] = max(A(:)); % second output of this function gives position of maximum
A(ind) % use linear index directly into A
[ii, jj, kk] = ind2sub(size(A), ind); % or convert to three indices...
A(ii, jj, kk) % ...and use them into A

关于matlab - 如何找到 3D MATLAB 矩阵中最大元素的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38555571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com