Hi, I want to group my data into 11 groups

4 views (last 30 days)
This is my Data-
[705.7142857 705.7142857 173.4285714 84.71428571 232.5714286 232.5714286 114.2857143 55.14285714 25.57142857 74.85714286 35.42857143 15.71428571 5.857142857 5.857142857].
I want to group same data into 1 group. This is 14*1 matrix where it has 3 pairs(705.7142857 705.7142857, 232.5714286 232.5714286 & 5.857142857 5.857142857) of same value data. So, I want these 3 pairs into 3 groups and rest of them into other 8 groups.
Is there anybody who can help me to code this?

Accepted Answer

Walter Roberson
Walter Roberson on 9 Mar 2019
Supposing your data is in vector v then
[~, ~, uidx] = unique(v);
grouped = accumarray(uidx, v, [], @(V) {V});
  5 Comments
Alamgir M S M
Alamgir M S M on 10 Mar 2019
Hello Walter,
Do you know any method to keep the grouping in the same sequence as my original data?
Your code and mine both are working to make group but it's changing the sequence. it's following the ascending format.
Is there any method just to group only same values but not change the sequence?
Alamgir M S M
Alamgir M S M on 10 Mar 2019
This worked as I inteded:
y=[705.7142857
705.7142857
173.4285714
84.71428571
232.5714286
232.5714286
114.2857143
55.14285714
25.57142857
74.85714286
35.42857143
15.71428571
5.857142857
5.857142857];
group = findgroups(y);
uniqueGroups = unique(group,'stable');
Thanks :)

Sign in to comment.

More Answers (0)

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!