Borrar filtros
Borrar filtros

How to group a matrix based on one column?

19 visualizaciones (últimos 30 días)
Sevgi
Sevgi el 9 de Mayo de 2023
Comentada: Peter Perkins el 5 de Jun. de 2023
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 comentarios
Sevgi
Sevgi el 9 de Mayo de 2023
Editada: Sevgi el 9 de Mayo de 2023
Thank you for this suggestion. I study on it and the code work for now.
T=readtable("a.xslx");
[percombine, combinenames]= findgroups(T.Combine);
meanfirstaxle= splitapply(@mean,T.("1. Axle"),percombine);
I can take mean of each groups too. But I still can't see what are group members. Is there a way for it?
Peter Perkins
Peter Perkins el 5 de Jun. de 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.

Iniciar sesión para comentar.

Respuestas (1)

Matt J
Matt J el 9 de Mayo de 2023
Editada: Matt J el 9 de Mayo de 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);

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by