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

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


概括地说-

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),:)

关于matlab - 删除包含超出特定范围的任何数字的行-MATLAB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26756205/

10-13 23:16