matrix

12 visualizaciones (últimos 30 días)
khalil
khalil el 19 de Abr. de 2012
how I can remove rows from matrix each elements in these rows are equals m=[1 2 3;1 1 1;4 5 8;4 5 8;1 1 1;1 1 1;1 1 1;1 1 1;1 1 1;1 1 1;1 1 1;1 1 1;4 5 8;7 8 5; 47 9 5;7 8 5;5 322 5;7 8 55];

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 19 de Abr. de 2012
m=[1 2 3;1 1 1;4 5 8;4 5 8;1 1 1;1 1 1;1 1 1;1 1 1;1 1 1;1 1 1;1 1 1;1 1 1;4 5 8;7 8 5; 47 9 5;7 8 5;5 322 5;7 8 55];
variant 1
[a b n] = unique(m,'rows','first');
[id id] = sort(b);
out1 = a(id,:);
variant 2
[a b n] = unique(m,'rows','first');
[id id] = sort(b);
t = accumarray(n,ones(numel(n),1)) == 1;
a2 = a(id,:);
out2 = a2(t(id),:);
  1 comentario
khalil
khalil el 19 de Abr. de 2012
Thank you.
The first variant is good solution for me

Iniciar sesión para comentar.

Más respuestas (2)

Geoff
Geoff el 19 de Abr. de 2012
m(row, :) = [];
Where row is the row index, or vector of row indices.

Jan
Jan el 19 de Abr. de 2012
I do not understand the question. What does "each element in the rows are equals" mean? Do you want to remove rows, which have have equal elements only? Then:
m = [1 2 3;1 1 1;4 5 8;4 5 8;1 1 1;1 1 1;1 1 1;1 1 1; ...
1 1 1;1 1 1;1 1 1;1 1 1;4 5 8;7 8 5; 47 9 5; ...
7 8 5;5 322 5;7 8 55];
m = m(any(diff(m, 1, 2), 2), :);

Categorías

Más información sobre Dynamic System Models en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by