[英]MATLAB: indexing a 3d matrix with another 3d matrix
假設我有兩個尺寸相同(3x3x2)的3D矩陣:
A =
ans(:,:,1) =
0 0 0
0 0 0
0 0 0
ans(:,:,2) =
0 0 0
0 0 0
0 0 0
B =
ans(:,:,1) =
0 1 0
0 1 0
0 1 0
ans(:,:,2) =
1 0 0
1 0 0
0 0 1
我想索引A的最后一頁(第三維),其中B的對應頁等於1,並將那些值變成2,這樣A變成:
A =
ans(:,:,1) =
0 0 0
0 0 0
0 0 0
ans(:,:,2) =
2 0 0
2 0 0
0 0 2
我該怎么做? 有沒有簡單的方法?
這可能是設置在第三維在最后一頁的內容的一種方法A
,在其中的第三個維度的最后一頁地方B
有1
的-
A(find(B(:,:,end)==1) + numel(B) - numel(B(:,:,1))) = 2
樣品運行-
%// Starting input, A
A(:,:,1) =
0.2187 0.1097 0.4046 0.3658
0.1058 0.0636 0.4484 0.7635
A(:,:,2) =
0.6279 0.9329 0.1920 0.6963
0.7720 0.9727 0.1389 0.0938
A(:,:,3) =
0.5254 0.8611 0.3935 0.7413
0.5303 0.4849 0.6714 0.5201
%// Input, B
B(:,:,1) =
2 2 1 1
1 1 3 2
B(:,:,2) =
3 3 3 2
2 2 3 1
B(:,:,3) =
1 1 3 3
2 1 2 2
%// Output, A
A(:,:,1) =
0.2187 0.1097 0.4046 0.3658
0.1058 0.0636 0.4484 0.7635
A(:,:,2) =
0.6279 0.9329 0.1920 0.6963
0.7720 0.9727 0.1389 0.0938
A(:,:,3) =
2.0000 2.0000 0.3935 0.7413
0.5303 2.0000 0.6714 0.5201
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.