How do I average columns in cell array if some cells are empty?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I have a cell array called new_mat. I would like to compute the mean of all the values in each column and save the result in a new array called averages. I would then have a numerical array with one row and five columns, so five values in total.
One of my columns however contains an empty cell which I think is causing an error.
I have tried this:
averages = cellfun(@(x) mean(x, 1), new_mat);
But I get this error:
Error using cellfun
Non-scalar in Uniform output, at index 24, output 1.
Set 'UniformOutput' to false.
What am I doing wrong?
0 Kommentare
Antworten (2)
Arif Hoq
am 12 Dez. 2022
you are asking the same question several times. your cell array "new_mat". giving an answer to your previous question:
a=load("split_newdata_mean.mat");
b=a.split_newdata_mean;
b{1,4}=[b{1,4};NaN]; % making equal dimension in the 4th column
c=[b{:}];
new_mat=c';
averages=mean(new_mat)
1 Kommentar
Arif Hoq
am 12 Dez. 2022
Bearbeitet: Arif Hoq
am 12 Dez. 2022
the average of the 5th column is NaN. If you want it as a numerical then add 0 or any value in the 4th column of the cell array.
a=load("split_newdata_mean.mat");
b=a.split_newdata_mean;
b{1,4}=[b{1,4};0]; % making equal dimension in the 4th column
c=[b{:}];
new_mat=c';
averages=mean(new_mat)
Siehe auch
Kategorien
Mehr zu Environment and Settings 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!