2012-11-13 94 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