Matlab 根据条件元素拾取行

Matlab 根据条件元素拾取行,matlab,Matlab,我有一个Nx3矩阵,我想找出第一列和第二列满足特定条件的所有行。下面是一个(非工作)示例,显示了我想要的: a = [1 3 0; 2 3 1; 4 9 2]; a = a(a(:, 1)>3 && a(:, 2)>3) 有什么方法可以在不必求助于计算密集型for-循环的情况下实现这一点吗?for循环实际上不是计算密集型的,它实际上与输入的大小成线性关系。通过N循环是一种方法。这应该适合您: a = [1 3 0; 2 3 1; 4 9 2]; a = a(a(:,

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

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

有什么方法可以在不必求助于计算密集型
for
-循环的情况下实现这一点吗?

for循环实际上不是计算密集型的,它实际上与输入的大小成线性关系。通过N循环是一种方法。

这应该适合您:

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
另一条路是:

ind1=find(a(:,1)>3);
ind2=find(a(:,2)>3);
a=a(intersect(ind1,ind2),:);

然后我会用
zero
创建一个足够大的Mx3矩阵,但是既然我猜不出M的正确值,那么我该如何删除剩下的只包含零的Kx3条目呢?