hello
I would like to know how I can use the unique function in matlab in such a way that i take off similar elements out of the 2D matrix, provided that the unique function does NOT SORT out he matrix and does NOT CHANGE ITS SHAPE
for example, consider x = [1 1 2 2 3 3 4 4; 5 5 6 6 7 7 8 8 ; 9 9 10 10 11 11 12 12]
output x = [1 2 3 4; 5 6 7 8; 9 10 11 12]
when I used unique, I did not find a way that did not play around with the shape of the 2D matrix

댓글 수: 2

Jan
Jan 2016년 10월 9일
Are you sure that all rows contain the same number of unique elements?
yes pretty much, I don't really have a problem with the working of the unique function other than the fact that its sorts out everything and changes the 2D matrix to a 1D matrix.

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

 채택된 답변

Jan
Jan 2016년 10월 9일

0 개 추천

x = [1 1 2 2 3 3 4 4; 5 5 6 6 7 7 8 8; 9 9 10 10 11 11 12 12]
nRow = size(x, 1);
c = cell(1, nRow);
for iRow = 1:nRow
c{iRow} = unique(x(iRow, :), 'stable');
end
result = cat(1, c{:}); % Fails if number of unique elements differ

추가 답변 (1개)

Marc Jakobi
Marc Jakobi 2016년 10월 9일
편집: Marc Jakobi 2016년 10월 9일

1 개 추천

x = [1 1 2 2 3 3 4 4; 5 5 6 6 7 7 8 8 ; 9 9 10 10 11 11 12 12];
y = unique(x','rows')';

카테고리

도움말 센터File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

제품

태그

질문:

2016년 10월 9일

댓글:

2016년 10월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by