MATLAB:获取3D数组中的最小值索引

时间:2013-08-08 10:30:10

标签: arrays matlab 3d minimum

我对MATLAB有一点疑问。

我有一个3D阵列,其中每个2D图层都是一张图片。我需要的是该数组中每个像素的最低值的“第三”索引(=层数)。最后,我想要一个二维数组,其中我有这些最低值的索引。

一个例子:

具有这2个2D层的3D阵列:

第1层:

3-5-6
1-4-2
7-5-2

第2层:

1-8-2 
4-6-1 
9-2-5

结果应该是以下数组:

2-1-2
1-1-2
1-2-1

我希望你能看到我想要达到的目标,抱歉我的英语不好,我无法用言语表达我的问题......

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

A成为矩阵然后你可以使用

[B, I] = min(A, [], 3);

其中B是最小值,I包含索引。如果您对最小值不感兴趣,可以使用

[~, I] = min(A, [], 3);

对于你的例子

>> A(:,:,1) = [3 5 6; 1 4 2; 7 5 2];
>> A(:,:,2) = [1 8 2; 4 6 1; 9 2 5];
>> [B,I]=min(A, [], 3)
B =
     1     5     2
     1     4     1
     7     2     2
I =
     2     1     2
     1     1     2
     1     2     1
相关问题