Extracting the same column in a cell array for anova
1 回表示 (過去 30 日間)
古いコメントを表示
Hi, I currently have a 1 x 8 cell (attached) and would like to extract the same column in every double and run an anova1 on them - eg 1st column in the 41 x 6 double, 1st column in the 80 x 6 double .... (total of 8 groups). May I know how I may do so?
Thank you, any help is much appreciated.
0 件のコメント
採用された回答
Adam Danz
2019 年 10 月 24 日
編集済み: Adam Danz
2019 年 10 月 24 日
'c' is your cell array. The first line extracts the first column from each of the elements of c and stores their values in a single column vector. The second line creates a grouping variable of the same length indicating which of the cell groups the data are from. See anova1 for more options on the 3rd line.
y = cell2mat(cellfun(@(x)x(:,1),c,'UniformOutput',false).');
group = cell2mat(cellfun(@(x,i)ones(size(x,1),1).*i,c,num2cell(1:numel(c)),'UniformOutput',false).');
p = anova1(y,group)
2 件のコメント
Adam Danz
2019 年 10 月 24 日
You'd just need to change the first line. Set col to any column number.
col = 1;
y = cell2mat(cellfun(@(x)x(:,col),c,'UniformOutput',false).');
% ^^^
Walter has a similar variable in his answer, too.
その他の回答 (1 件)
Walter Roberson
2019 年 10 月 24 日
col_to_extract = 1;
the_columns_as_cells = cellfun(@(C) C(:,col_to_extract), YourCellArray, 'uniform', 0);
You cannot, however, combine these into a single something-by-8 numeric array, as the cells have different numbers of rows.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で ANOVA についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!