Matlab - Eliminar filas matriz selectivamente

 
Vista:

Eliminar filas matriz selectivamente

Publicado por Perico (2 intervenciones) el 13/12/2017 14:35:53
Hola,

tengo una matriz de cuatro columnas (en realidad es un "cell", ya que en la primera columna hay cadenas de texto, y en las otras tres hay números. Por ejemplo:

a 1 0 2
a 1 1 2
b 1 1 2
c 2 0 0
d 2 0 1
e 2 0 1

Ahora quiero que Matlab haga lo siguiente:

1-Buscar todas las filas de la matriz cuyas 2ª, 3ª y 4ª fila formen un bloque que no se repita. En nuestro ejemplo, serían las filas 1 y 4.
2-Anotar todas las cadenas de texto que encontremos como primer elemento de dichas filas. En nuestro ejemplo, serían 'a' y 'c'.
3-Eliminar todas las filas de la matriz que tengan por primer elemento las citadas cadenas de texto. En nuestro ejemplo, eso significaría eliminar las filas 1, 2 y 4, quedando entonces la matriz:

b 1 1 2
d 2 0 1
e 2 0 1

Sabría como hacer esto con una complicada combinación de bucles for... pero sospecho que me saldría un código lento y poco optimizado, lo cual sería grave porque las matrices con las que trabajo no son de seis filas, sino de decenas de miles. No conozco a fondo Matlab, pero he oído que destaca precisamente por gestionar muy bien matrices, arrays, etc. Puede que haya funciones muy apropiadas para desarrollar este algoritmo de forma sencilla y limpia. Os agradecería alguna ayuda al respecto.

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Eliminar filas matriz selectivamente

Publicado por Perico (2 intervenciones) el 13/12/2017 17:28:33
No hay tal dato, es para un programa que debería funcionar con cualquier matriz de estas características. Como la que pongo en el primer post, por ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar