如何计算matlab中单元格数组元素的平均值?

问题描述 投票:-1回答:1

我有一个尺寸为64x8的cellarray A,其元素在以下维度中,

520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double
520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double
520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double    520x1 double
...................

现在我需要在每列的8行中取MEAN,这样我每行只能获得一个520X1的单元格。

所以,在对行应用平均值后,我的输出应该是这样的,

520x1 double
520x1 double
520x1 double
520x1 double
............

所以,我的输出将是从64x8转换而来的64x1单元阵列。

我尝试使用以下命令执行此操作,

avgCell = {mean(cat(3,C {:}),3)}

但是,它为1X1单元阵列提供了一个尺寸为520X1的单元格。

请纠正我,并建议我是否有任何功能来处理这个问题。如果我需要循环来执行此操作,还请告诉我?

matlab matrix mean cell-array
1个回答
0
投票
% Create sample data...

A = cell(64,8);

for i = 1:64
    for j = 1:8
        A{i,j} = rand(520,1);
    end
end

% Calculate column-wise means...

B = mean(cell2mat(A),2);

% Reshape the result into a cell array...

C = mat2cell(B,repmat(520,64,1),1);
© www.soinside.com 2019 - 2024. All rights reserved.