MATLAB Answers

0

Cell to matrix average

Asked by Articat on 17 Sep 2019
Latest activity Answered by the cyclist
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!

  0 Comments

Sign in to comment.

2 Answers

Rik
Answer by Rik
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);

  0 Comments

Sign in to comment.


the cyclist
Answer by the cyclist
on 17 Sep 2019

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

  0 Comments

Sign in to comment.