Cell to matrix average

Articat (view profile)

on 17 Sep 2019
Latest activity Answered by the cyclist

the cyclist (view profile)

on 17 Sep 2019
I have a cell array consising of 93x1 cells(named velocitydata). Each cell consists of a 145x147x19 matrix. I want to average the cell array so the result will be an averaged 145x147x19 matrix.
I tried this:
A = cellfun(@mean, velocitydata)
I keep getting the "Did you mean: A = cellfun(@mean, xVelocityData, 'UniformOutput', true, 'UniformOutput', false) "
I tried that but it returns me the exact same thing. Can someone point me in the right direction?
Anything would help. Thanks!

Rik (view profile)

on 17 Sep 2019

Something like this should work for you:
%generate some example data
data=cell(93,1);
for n=1:93
data{n}=rand(45,147,19);
end
number_of_dims=ndims(data{1});
new_data=cat(number_of_dims+1,data{:});
avg=mean(new_data,number_of_dims+1);

Answer by the cyclist

the cyclist (view profile)

on 17 Sep 2019

I believe this does what you want:
B = squeeze(mean(reshape(cell2mat(A),93,145,147,19)));