0

我有一个 Nx3 矩阵,我想挑选出第一列和第二列满足特定条件的所有行。这是一个(非工作)示例,显示了我想要的内容:

a = [1 3 0; 2 3 1; 4 9 2];
a = a(a(:, 1)>3 && a(:, 2)>3)

是否有办法在不必求助于计算密集型循环的情况下完成此任务for

4

3 回答 3

1

另一种方法:

ind1=find(a(:,1)>3);
ind2=find(a(:,2)>3);
a=a(intersect(ind1,ind2),:);
于 2013-03-15T22:38:20.010 回答
1

这应该适合你:

a = [1 3 0; 2 3 1; 4 9 2];
a = a(a(:, 1)>3 & a(:, 2)>3,:) %you should put element-wise and (&) and put the colon (:) operator which indicates 'all columns'

ans =

 4     9     2
于 2013-03-15T19:41:19.213 回答
0

for 循环实际上不是计算密集型的,它实际上与输入的大小成线性关系。循环N是要走的路。

于 2013-03-15T19:37:32.627 回答