所以我有一個蘭特(3,3,2)。使用N-D數組中前2個元素的邏輯索引?
然後,我有這是類似的邏輯索引
B = [1 0 0; 0 0 1; 1 1 1]
B =
1 0 0
0 0 1
1 1 1
但我想能夠調用一個(b)用於兩者(:,:,1)和(:,:, 2)。 (:,:,1)和(:,:,2)都有共享的邏輯索引。我將如何能夠做到這一點?
所以我有一個蘭特(3,3,2)。使用N-D數組中前2個元素的邏輯索引?
然後,我有這是類似的邏輯索引
B = [1 0 0; 0 0 1; 1 1 1]
B =
1 0 0
0 0 1
1 1 1
但我想能夠調用一個(b)用於兩者(:,:,1)和(:,:, 2)。 (:,:,1)和(:,:,2)都有共享的邏輯索引。我將如何能夠做到這一點?
如果b
是邏輯陣列,那麼你可以做
n = size(a, 3);
a(repmat(b, [1,1,n]))
假設b
是一個邏輯陣列(如果它不是,那麼做b = logical(b);
轉換),那麼請嘗試以下操作:
a([b(:); b(:)])
a1 = a(:,:,1);
a2 = a(:,:,2);
selected_a1 = a1(b==1);
selected_a2 = a2(b==1);
在這裏,我們選擇矩陣a的所有值,其中b是1,然後將它們存儲到selected_a1和selected_a2中。