How can I find equal elements in a vector and place them at the end of the vector?

2 views (last 30 days)
Hello, how can I find equal elements within a vector, and once I find these repeated elements, place them at the end? for example I have a vector.
vector = [10 22 22 22 30 45 45 20]
the result of the new vector would have to be
newvector = [10 30 20 22 22 22 45 45]
thanks in advance

Accepted Answer

Chunru
Chunru on 15 Dec 2021
vector = [10 22 22 22 30 45 45 20]';
[GC,GR] = groupcounts(vector);
[GC, idx] = sort(GC);
GR=GR(idx);
newvec = [];
for i=1:length(GR)
newvec =[newvec; vector(vector==GR(i))];
end
newvec
newvec = 8×1
10 20 30 45 45 22 22 22

More Answers (0)

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!