方法1
遍历所有行,找到满足要求的行tag,然后调用A(a,:) = []
。
A = neighborhood_s;
a = [];
for i = 1 : size(A,1)
if abs(A(i,7)) > 1.0 || abs(A(i,8)) > 1.0
a = [a; i];
end
end
A(a, :) = [];
耗时20分钟!
方法2
使用逻辑判断,找到行tag,然后调用A(id,:) = []
。
注意是|
,如果使用||
会报错“|| 和 && 运算符的操作数必须能够转换为逻辑标量值”。
id = abs(A(:,7)) > 1.0 | abs(A(:,8)) > 1.0;
A(id,:) = [];
耗时2秒!
方法3
使用find函数,找到行tag,然后调用A(id,:) = []
。
id = find(abs(A(:,7)) > 1.0 | abs(A(:,8)) > 1.0);
A(id,:) = [];
耗时2秒!
总结
上述三种方法中:方法3耗时最短,为2秒;方法1耗时最长,为20分钟;方法2和方法3的耗时在同一量级上。推荐使用方法2和方法3。