matrix

12 vues (au cours des 30 derniers jours)
khalil
khalil le 19 Avr 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];

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 19 Avr 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 commentaire
khalil
khalil le 19 Avr 2012
Thank you.
The first variant is good solution for me

Connectez-vous pour commenter.

Plus de réponses (2)

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

Jan
Jan le 19 Avr 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), :);

Catégories

En savoir plus sur Dynamic System Models dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by