我试图将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
。
它应该相当简单,但我无法得到它。
答案 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 , : )