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];

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2012년 4월 19일

0 개 추천

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

khalil
khalil 2012년 4월 19일
Thank you.
The first variant is good solution for me

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Geoff
Geoff 2012년 4월 19일

0 개 추천

m(row, :) = [];
Where row is the row index, or vector of row indices.
Jan
Jan 2012년 4월 19일

0 개 추천

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), :);

카테고리

도움말 센터File Exchange에서 Dynamic System Models에 대해 자세히 알아보기

태그

질문:

2012년 4월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by