Separate and Operate on Cells Based on Label

2 views (last 30 days)
Hello,
I need assistance with separating out a cell array consisting of text labels within each cell based on the label. I have tried the findgroups function, but I would like to have the labels remain for further operations instead of the generated numbers for the labels (for example, I'd want to work with group "bicep" instead of group "1"). If I am misunderstanding how findgroups works and that is a possible outcome with that function, please explain how, as I am still new to Matlab.
Secondly, once those cells are separated based on the label, I need some way to go through all of the groups separately with a function (in this case, a mean of the unique values in corresponding cells). I understand how to do the function if all values were in the same group, but I am confused if working with numerous groups at the same time.
If there's anything else needed to help with my case, please ask and I can give more information. Thank you. (see comments)
  6 Comments
per isakson
per isakson on 12 Jul 2016
Edited: per isakson on 12 Jul 2016
"I'd want to work with group "bicep" instead of group "1"" &nbsp means that you you want to use statements like
plot( ..., 'bicep' )
How large is the total dataset, typically?
Brian Tomblin
Brian Tomblin on 12 Jul 2016
It can vary depending on how much data is given. Currently working with around 14 labels. A way to group the data such that naming each individual label during plotting would be unnecessary would be nice, if possible. Along the idea that the groups are separated, but still remain under a variable LABELS or something like that, so plot(Labels) would go through each group individually and plot them without having to name them. If that's not a possibility, it can be worked around.

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 10 Jul 2016
Try the ismember() function. To get the means, you can use grpstats().
  3 Comments
Stephen23
Stephen23 on 11 Jul 2016
Edited: Stephen23 on 11 Jul 2016
Have a look at ismember's second output. You could use that output in accumarray to group/process your data together.
Brian Tomblin
Brian Tomblin on 11 Jul 2016
Edited: Brian Tomblin on 11 Jul 2016
Using the Lia or Lia,Locb function requires a string instead of cells, which doesn't work due to the long list of text that ends up in a single cell. I cannot seem to find the members when all of them are together in the same cell. Possibly text was not intended for the ismember() function.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!