我有一个3xn矩阵A,列x,y和z。如何找到X1> x> X2和Y1> y> Y2(其中X1,X2,Y1和Y2在x-y网格上定义一个框)的所有行?
我已经尝试过以下无法解决的方法:
Abox = A(A(:,1)<X1 & A(:,1)>X2 & A(:,2)<Y1 & A(:,2)>Y2,:));
和
indices = find(A(:,1)<X1 & A(:,1)>X2 & A(:,2)<Y1 & A(:,2)>Y2);
Abox = A(indices,:);
都返回空数组。
Axrange = A(A(:,1)<X1 & A(:,1)>X2,:));
Abox = Axrange(Axrange(:,2)<Y1 & Axrange(:,2)>Y2,:);
返回第一行的填充数组,然后是第二行的空数组。
答案 0 :(得分:0)
您的代码是正确的
find(A(:,1)<X1 & A(:,1)>X2 & A(:,2)<Y1 & A(:,2)>Y2)
但是,这会返回匹配行的索引。您需要使用它来获取实际行:
indices = find(A(:,1)<X1 & A(:,1)>X2 & A(:,2)<Y1 & A(:,2)>Y2)
A2 = A(indices,:)