How to group a matrix based on one column?
19 views (last 30 days)
Show older comments
Hi,
I have a 64600x59 matrix data. I need unique values and also non-unique values grouped. Usually i use unique() function and then check if my rows matches with unique value rows, then i group by this using for loop. But this time my data is very big and it takes too much time.
I am curious about if there is any shortcut way or a function in matlab for me to group every same value in a different cell or table. This way i will be seeing non-unique values as grouped.
Do you have any ideas or suggestions?
Thank you
3 Comments
Peter Perkins
on 5 Jun 2023
There are any number of ways to do grouped calculations, includng groupsummary/transform/filter/counts, varfun/rowfun, and (as Stephen123 says) findgroups/splitapply.
But first you need to show exactly what you have and exactly what you want.
Answers (1)
Matt J
on 9 May 2023
Edited: Matt J
on 9 May 2023
Usually i use unique() function and then check if my rows matches with unique value rows, then i group by this using for loop.
If using unique(), the 3rd output argument gives the group label. There is no need for a for-loop.
[values, ~, groupLabel]=unique(data);
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!