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

删除包含特定范围之外的任何数字的行-MATLAB,matlab,Matlab,删除包含特定范围外数字的矩阵行的最佳方法是什么?比如说 A = 200 400 500 200 500 100 600 200 200 100 300 200 Range = [200 500]; 第3、4和5行将被删除,因为它们包含数字500 这应该适合你- A(any(A<200 | A>500,2),:)=[]; A(任意(A500,2),:)=[]; 概括地说- range1 = [200 500]; %// changed the variable n

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

A =

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

Range = [200 500];

第3、4和5行将被删除,因为它们包含数字500

这应该适合你-

A(any(A<200 | A>500,2),:)=[];
A(任意(A500,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(任何(第1(2),2),:)=[];
如果要删除的行数很多,为了提高性能,您最好索引到其他行,而不是删除-

range1 = [200 500];
A = A(~any(A<range1(1) | A>range1(2),2),:)
range1=[200500];
A=A(~any(Arange1(2),2),:)

一个简单的解决方案可以是:

A(any(A<200 | A>500,2),:) = [];
A(任意(A500,2),:)=[];

什么是空单元格?将矩阵的行赋值为空只会删除它们。这与Divakar的第一个解决方案有何不同?无意冒犯。我只是好奇,没什么不同。我想不能责怪人们一起打字。