Cell to matrix average

조회 수: 2 (최근 30일)
Articat
Articat 2019년 9월 17일
답변: the cyclist 2019년 9월 17일
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!

답변 (2개)

Rik
Rik 2019년 9월 17일
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);

the cyclist
the cyclist 2019년 9월 17일
I believe this does what you want:
B = squeeze(mean(reshape(cell2mat(A),93,145,147,19)));

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by