calculate means to plot

1 view (last 30 days)
Kuang-Yu WANG
Kuang-Yu WANG on 26 Jun 2018
Commented: Kuang-Yu WANG on 26 Jun 2018
i have many datas.
thething = {26*7 double} {200*7 double} {100*7 double} .... {22*7 double}.
I want to call out each mean in (:,4) to form a plot. however the matlab keep saying the means after 22th cell do not exist. This is the script i use.
>> mean(cellfun(@(x) x(:,4), thething,'UniformOutput',false))
But it could not generate anything.
  7 Comments
Walter Roberson
Walter Roberson on 26 Jun 2018
Do not do it with cellfun: do it with a loop.
It is possible to do with cellfun, but you end up having to pad short arrays with nan and then using nanmean. I do not recommend the technique for beginners.
Kuang-Yu WANG
Kuang-Yu WANG on 26 Jun 2018
Thanks for suggestion. But I still do not find a simple way for loop to do the task.

Sign in to comment.

Answers (2)

Walter Roberson
Walter Roberson on 26 Jun 2018
cellfun(@(x) mean(x(:,4)), thething)

KSSV
KSSV on 26 Jun 2018
N = [10 8 4 5 9] ;
M = length(N) ;
A = cell(M,1) ;
% create some radom data
for i = 1:M
A{i} = rand(N(i)) ;
end
% get mean
C = cellfun(@(x) mean(x(:,4), 1), A, 'UniformOutput', false);

Products

Community Treasure Hunt

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

Start Hunting!