簡體   English   中英

MATLAB:用另一個3d矩陣索引一個3d矩陣

[英]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 ,在其中的第三個維度的最后一頁地方B1的-

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM