我有一个矩阵A
和一个向量b
。我不知道它们的大小,大小不一,因为它是另一个功能的输出。我想要做的是按列{(例如 j 列)过滤A
,其中至少有一个值在b
中。
如何在不测量b的大小和连接每个过滤结果的情况下执行此操作。现在,代码是这样的(假设 j 是给定值)
bsize=size(b,1);
for i=1:bsize
if i==1
a=A(A(:,j)==b(i),:);
else
a=[a; A(A(:,j)==b(i),:)];
end
end
我想编写更快的解决方案。
我正在添加一个数字示例,只是为了说清楚。我们说
A=[2 4
7 14
11 13
15 14]
和b=[4 14]
我要做的是过滤以获取第二列中值为4和14的A
矩阵,b
的元素以获得以下输出。
A=[2 4
7 14
15 14]
在我的数据A
中有超过12000行,而b
有超过100个元素。它并不总是必须是第二列,有时列索引会发生变化,但现在不是问题。