从数组matlab中跳过/忽略值

时间:2014-03-07 21:00:26

标签: matlab

给定以下数组[123 1 123 2 122 1 123 124]如何快速重新创建一个保持相同顺序但跳过值1& 2

我很确定这很简单,但我在那里不知所措。

2 个答案:

答案 0 :(得分:2)

使用ismember,您可以保持原始顺序并继续重复:

skipVals = [1 2];
x = [123 1 123 2 122 1 123 124];
y = x(~ismember(x,skipVals))

y =
   123   123   122   123   124

因为我知道Luis Mendo会建议这一点,我觉得自己很邪恶:

y = x(all(bsxfun(@ne,x,skipVals.'),1))

答案 1 :(得分:0)

这是另一种方法:

    a=[123 1 123 2 122 1 123 124];
    b=a;
    b(b==1)=[];b(b==2)=[];