删除包含特定范围之外的任何数字的行 - MATLAB

时间:2014-11-05 11:33:48

标签: matlab

删除包含特定范围之外的数字的矩阵的行的最佳方法是什么?例如

A =

200  400
500  200
500  100
600  200
200  100
300  200

Range = [200 500];
然后将删除行3,4和5,因为它们包含数字< 200和> 500。

2 个答案:

答案 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),:) = [];