删除包含特定范围之外的数字的矩阵的行的最佳方法是什么?例如
A =
200 400
500 200
500 100
600 200
200 100
300 200
Range = [200 500];
然后将删除行3,4和5,因为它们包含数字< 200和> 500。
答案 0 :(得分:6)
这应该适合你 -
A(any(A<200 | A>500,2),:)=[];
通常说 -
range1 = [200 500]; %// changed the variable name as
%// range is already a builtin function name
A(any(A<range1(1) | A>range1(2),2),:)=[];
如果要删除的行数很多,为了提高性能,您可以将其转换为其他行而不是删除 -
range1 = [200 500];
A = A(~any(A<range1(1) | A>range1(2),2),:)
答案 1 :(得分:0)
一个简单的解决方案可能是:
A(any(A<200 | A>500,2),:) = [];