gpt4 book ai didi

arrays - 如何在 MATLAB 中找到 3D 数组每个切片的最大值和位置?

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

计算 3D 数组的每个“切片”的最大值及其相应索引的最快方法是什么?

最佳答案

假设您有 An 切片(这里我只是将每个切片设为 10 x 10,但这可以更改为任何大小):

A = rand(10,10,n);

您可以将其整形为 n 列矩阵,然后取每列的最大值:

[val,ind] = max(reshape(A,[],n),[],1);

第一个输出 val 将是一个包含所有最大值的 n 元素向量,第二个输出 ind 将是它们在 reshape 的 中的行索引A.

然后你得到切片的大小:

sz = size(A);

并用它来查找每个切片中每个最大元素的行(r)和列(c):

[r,c] = ind2sub(sz(1:2),ind)

所以在这个例子中(使用 rand 和 10x10x6 数组作为 A)你会在最后得到类似这样的东西(但有不同的值):

val =
0.99861 0.98895 0.98681 0.99991 0.96057 0.99176
r =
9 7 3 8 2 9
c =
1 1 8 10 10 5

关于arrays - 如何在 MATLAB 中找到 3D 数组每个切片的最大值和位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44263325/

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