How do you remove duplicates without using unique?

1 回表示 (過去 30 日間)
jeff417
jeff417 2016 年 4 月 9 日
コメント済み: Star Strider 2016 年 4 月 9 日
I have a problem where I have to remove duplicates from a column without using unique and without sorting the data. My current code is able to remove duplicates without unique, but the data has to be sorted for it to work. Is there a way to remove the duplicates without sorting and without using unique?
z = length(A);
for i = 1:(z-1)
if A(i+1) == A(i)
A(i) = A(i) - A(i+1);
end
end
A(A==0) = [ ];
end

採用された回答

Star Strider
Star Strider 2016 年 4 月 9 日
One approach:
A = [1;2;3;3;4;5;6;7;7;8;9];
Ac = zeros(size(A));
for k1 = 1:length(A)-1
Ac(k1) = sum(A(k1) == A(k1+1:end));
end
Out = A(Ac == 0)
Out =
1
2
3
4
5
6
7
8
9
  2 件のコメント
jeff417
jeff417 2016 年 4 月 9 日
Works perfectly, thank you!
Star Strider
Star Strider 2016 年 4 月 9 日
My pleasure!
It was fun to write that!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by