varfun for a cell array?
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Adam Danz
2020 年 3 月 31 日
I believe OP has a 300x1 cell array where each element is one of these tables. Good call with groupfilter.
採用された回答
Adam Danz
2020 年 3 月 31 日
編集済み: Adam Danz
2020 年 4 月 1 日
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 件のコメント
Adam Danz
2020 年 4 月 1 日
That function outputs the coordinates of intersection points between two curves/lines defined by (x1,y1) (x2,y2) and their indices.
Since you're dealing with multiple outputs a loop is the way to go. The code below assumes you have a nx1 cell array C containing tables with headers 'x1' 'x2' 'y1' 'y2'. It creates another cell array intersectPoints the same size as C where each element is a table showing the [x0,y0,iout,jout] values.
% C is your 300x1 cell array containing tables with
% headers 'x1' 'x2' 'y1' 'y2'
% Pre-allocate loop variables
intersectPoints = cell(size(C));
%Loop through each cell
for i = 1:numel(C)
[x0,y0,iout,jout] = intersections(C{i}.x1, C{i}.y1, C{i}.x2, C{i}.y2, 'robust');
% Put outputs in a table
intersectPoints{i} = array2table([x0,y0,iout,jout], 'VariableNames', ...
{'x0','y0','iout','jout'});
end
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Preprocessing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!