2012-11-13 92 views
1

我有陣列卸下某些元素(MATLAB)

A = [7 4 6 1 2 3 5] 
B = [1 5 4 0 0 2 0] 

(陣列A將始終具有length=7與以隨機的順序的數字。)

我想保持A的順序,但只保留其值爲B的對應索引爲>0的值。

所以從上面的例子中,我想將A更改爲[6 1 2 3]。意思是,B中的第7,第4和第5個元素等於0,因此從A中刪除值7,4和5。

我想這樣做沒有循環。

回答

2

A(B(A)> 0)

或:

A(找到(B(A)))

雖然我相信後者效率不高

+0

啊,太簡單了!正是我在找什麼,謝謝。 –

+3

@RodyOldenhuis它看起來像OP意味着A將永遠是randperm(7)所以這個答案是正確的 – Dan