Delete the row of matrix
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Laura
el 9 de Feb. de 2015
Comentada: Guillaume
el 9 de Feb. de 2015
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.
2 comentarios
Respuesta aceptada
Guillaume
el 9 de Feb. de 2015
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
2 comentarios
Guillaume
el 9 de Feb. de 2015
You seem to be a bit confused about array indexing. In
A(rx, ry)
ry is the columns of A. You've only got two columns.
If you wanted to use your method, you'd have to do:
rx=find(A(:, 1) >= 1.12 & A(:, 1) <= -1.125);
ry=find(A(:, 2) >= 2.12 & A(:, 2) <= -2.3);
A(intersect(rx, ry), :) = [];
It's a lot more work though than:
logicalx = A(:, 1) >= 1.12 & A(:, 1) <= -1.125;
logicaly = A(:, 2) >= 2.12 & A(:, 2) <= -2.3;
A(logicalx & logicaly, :) = [];
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!