过滤具有不同限制的数组的两列,并仅保留满足两者的行

时间:2014-02-14 18:43:05

标签: matlab concatenation filtering

我试图将Matlab中的两个列矩阵合并为一个;例子(两个20x1矩阵到一个20x2):

a = randn(1,20)';
b = randn(1,20)';

c = [a,b];

我的问题是,如何过滤每列,以便我可以过滤掉某些值(例如a(i)>0.8)列a中的任何值,并过滤掉b列的任何值值(比如b(i)<0.5)并且只保留满足两个条件的行?

换句话说,我只想保留满足两个条件的行a(i)>0.8&amp; b(i)<0.5。 它应该相当简单,但我无法得到它。

1 个答案:

答案 0 :(得分:2)

a = rand(1,20)';
b = rand(1,20)';

创建一个分析两个向量的掩码:

mask = a > 0.8 & b < 0.5 

然后连接:

c = [a,b];
c = c(mask,:)

返回例如:

c =

    0.9421    0.3685
    0.8212    0.4868

或连接后执行:

c = [a,b];
d = c( c(:,1) > 0.8 & c(:,2) < 0.5 , : )