remove rows from a matrix on a specific condition

I want to remove rows from a matrix when a specific condition is satisfied.
For example, lets as assume that I have the following 5x5 matrix :
A= [ 5 3 3 1 4
6 6 3 1 0
6 2 2 2 0
4 2 3 2 0
1 1 1 1 2 ]
and I want to delete the rows of this matrix when the elements of the 5th column are equal to 0, so I will be left with the first and last row as an outcome:
A= [ 5 3 3 1 4
1 1 1 1 2 ]
Thanks

1 comentario

Dimitris
Dimitris el 1 de Feb. de 2013
Just to make clear there are ; for every 5 elements in the example to separate the rows, I hope it is clear, sorry about that

Iniciar sesión para comentar.

 Respuesta aceptada

Daniell Algar
Daniell Algar el 1 de Feb. de 2013
Try
A= [ 5 3 3 1 4; 6 6 3 1 0; 6 2 2 2 0; 4 2 3 2 0; 1 1 1 1 2 ]
A(A(:, 5)== 0, :)= []

3 comentarios

I have tried to do this for the table variable type, but I get the following error message:
Undefined operator '~=' for input arguments of type 'table'
It seems that logical indexing doesn't work in the same way for table variables. What would be an equivalent procedure?
Raghu Vamsi
Raghu Vamsi el 9 de En. de 2020
What if the 0 is not exactly in the 5th Column but random in cells, then how to solve the same issue?
Jona Gladines
Jona Gladines el 12 de Oct. de 2020
@Raghu Vamsi, If still needed, repeat for every column. As it wil only remove the rows with a 0 in that specific column.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 1 de Feb. de 2013

Comentada:

el 12 de Oct. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by