我对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
我希望你能看到我想要达到的目标,抱歉我的英语不好,我无法用言语表达我的问题......
感谢您的帮助。
答案 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