Hi, I want to group my data into 11 groups

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

Supposing your data is in vector v then
[~, ~, uidx] = unique(v);
grouped = accumarray(uidx, v, [], @(V) {V});

5 Comments

Hello,
Thank you for the quick reply. I haven't tried yours but found a solution right after I posted my question here.
I'm not a pro. So, please excuse me for my silly question.
Here it worked for me:
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);
findgroups() in this context ends up calling unique() to get the third parameter, as I did in my code.
Actually findgroups() technically can group my data. But, the sequence is random. I actually wanted it to be in sequence. Guess I now have to try yours :(
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?
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!