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

Ann*_*ann 2 matlab

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

A =

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

Range = [200 500];
Run Code Online (Sandbox Code Playgroud)

然后将删除第3,4和5行,因为它们包含<200和> 500的数字.

Div*_*kar 6

这对你有用 -

A(any(A<200 | A>500,2),:)=[];
Run Code Online (Sandbox Code Playgroud)

一般说来 -

range1 = [200 500]; %// changed the variable name as 
                    %// range is already a builtin function name
A(any(A<range1(1) | A>range1(2),2),:)=[];
Run Code Online (Sandbox Code Playgroud)

如果要删除的行数很多,为了提高性能,您可以将其索引到其他行而不是删除 -

range1 = [200 500];
A = A(~any(A<range1(1) | A>range1(2),2),:)
Run Code Online (Sandbox Code Playgroud)