gpt4 book ai didi

matlab - 如何使用混合索引格式访问 MATLAB 中的多维数组

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:02 25 4
gpt4 key购买 nike

假设我有两个数组,M1 和 M2。两者的尺寸均为 m x n x p。我对 M1 的 mxn 数组感兴趣,该数组对应于第三维的最大元素,所以我这样做:

      [M1max, indices]=max(M1,[],3);

M1max 和 indices 都是 m x n 数组。但现在假设我想访问 M2 中与 M1 中的那些最大元素相对应的元素(也就是说,我想要 M2 中的所有元素与 M1 中最终在 M1max 中的元素具有相同的索引)。我该怎么做?

最佳答案

我认为这应该可以:

[y x]=ndgrid(1:size(M1,1),1:size(M1,2));
reshape(M2(sub2ind(size(M1),y(:),x(:),indices(:))),[size(M1,1),size(M1,2)]);

你想要所有的索引都是idx <-> (y,x,indices(y,x)) ,这将计算它。然后计算 M2(idx)并很好地 reshape 它。

关于matlab - 如何使用混合索引格式访问 MATLAB 中的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8568548/

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