Extracting the same column in a cell array for anova
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Cside
am 24 Okt. 2019
Kommentiert: Adam Danz
am 24 Okt. 2019
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 Kommentare
Akzeptierte Antwort
Adam Danz
am 24 Okt. 2019
Bearbeitet: Adam Danz
am 24 Okt. 2019
'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 Kommentare
Adam Danz
am 24 Okt. 2019
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.
Weitere Antworten (1)
Walter Roberson
am 24 Okt. 2019
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 Kommentare
Siehe auch
Kategorien
Mehr zu ANOVA finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!