【发布时间】:2019-12-16 10:19:54
【问题描述】:
我有 2 个 3D 矩阵:
A=[19,18,17;16,15,14;13,12,11];
A(:,:,2)=[9,8,7;6,5,4;3,2,1];
B=sort(A,3);
有输出
A(:,:,1) =
19 18 17
16 15 14
13 12 11
A(:,:,2) =
9 8 7
6 5 4
3 2 1
B(:,:,1) =
9 8 7
6 5 4
3 2 1
B(:,:,2) =
19 18 17
16 15 14
13 12 11
我想在A 中找到B 的矩阵之一的第三坐标。
所以
find(A==B(:,:,1))
答案是
ans =
10
11
12
13
14
15
16
17
18
但是,我希望答案是2,因为这个矩阵在A的第三维第二位置:A(:,:,2)
我该怎么做?
我尝试了find(A(~,~,:)==B(:,:,1)),但出现了错误。
【问题讨论】:
-
为什么排序函数的次要输出,索引,不是你想要的?
-
@GideonKogan 如果你这样做 ´[x,y,z]=find(A==B(:,:,1))´ y=[4,4,4,5,5, 5,6,6,6] 不能填入 A,因为它的最大值总是 3(A(1,4,1) 是不可能的)
标签: matlab matrix find matrix-indexing