varfun for a cell array?

1 view (last 30 days)
Angelavtc
Angelavtc on 31 Mar 2020
Commented: Angelavtc on 1 Apr 2020
Is there a way to apply varfun(@mean,A,'GroupingVariable','VariableX')to all the elements that are contained into a cell array? If yes, how?
Thanks a lot!
  5 Comments
Angelavtc
Angelavtc on 1 Apr 2020
Yes, OP has a 300x1 cell array :)

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 31 Mar 2020
Edited: Adam Danz on 1 Apr 2020
I didn't quite get the last part of your description but this should get you started. If you have trouble completing your goal, please elaborate.
The key is using cellfun to evaluate a function for each element of a cell array.
% C is the [n x 1] cell array containing tables with the same headers.
% Create function to be executed on each table T
tableFcn = @(T)varfun(@mean,T,'GroupingVariable','Price');
% Compute the grouped mean for each variable
A= cellfun(tableFcn, C, 'UniformOutput', false)
% Get all values where groupcount==2
selectedGroupCount = cellfun(@(T){T(T.GroupCount == 2, :)}, A);
% Convert the cell array of tables into a final table
Afinal = vertcat(selectedGroupCount{:});
  7 Comments
Angelavtc
Angelavtc on 1 Apr 2020
@Adam Danz thank you so much! this is exactly what I need it... I will give it a try :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!