MATLAB: Delete the row of matrix

delete row

I want to delete multiple rows of matrix.
For example,
Matrix A contains X in the first column, and Y in the second column. Note that X and Y does not have to be a whole number .
A = [ 1.122 2.111; 1.122 2.3, etc,….]
If X values are in the interval of [1.12 -1.125] and Y values are in the interval of [2.12-2.3], then delete this row.If X is in the range but Y is not, then dont delete them. Note that I have to search the matrix A to find whether X and Y in the interval that I defined, and then delete them. From the example above, the second row needs to delete by looking at it. But I need to search them for the huge matrix which I cant use eye to find them. I need you guys helps.
Thanks.

Best Answer

It's fairly basic matlab matrix manipulation. Use logical indexing:
A(A(:, 1) >= 1.12 & A(:, 1) <= -1.125 & A(:, 2) >= 2.12 & A(:, 2) <= -2.3, :) = []
% A(:, 1) is your X, A(:, 2) is your Y
% A(:, 1) >= 1.12 & A(:, 1) <= -1.125 is all the rows of A for X in [1.12 -1.125] (1)
% A(:, 2) >= 2.12 & A(:, 2) <= -2.3 is all the rows of A for Y in [2.12 -2.3] (2)
% (1) & (2) is X in [1.12 -1.125] AND Y in [2.12 -2.3]
% A(condition, :) = [] remove all the rows of A that fulfill the condition