对结构中存储的所有矩阵求平均值

时间:2016-07-07 18:18:53

标签: matlab matrix structure

我目前正在使用以下代码来获取存储在结构matData中的8766个矩阵的平均值,但当我查看Mcell(1x8766个单元格)内存储在每个单元格中的所有值时与单元格1x1中的重复。我想知道我做错了什么,因为我将采用这个结构中所有矩阵的nanmean

Mcell = arrayfun(@(x) matData(sprintf('(%d)',x)).shape, 1:8766, 'uni', 0);
M = nanmean( reshape(cell2mat(Mcell), 192, 144, []), 3 );

额外备注:matData是1x8766结构,matdata中有1个字段文件被称为matData(i).shape i=1:8766,其中192x144为双。

感谢您的所有输入和帮助。

1 个答案:

答案 0 :(得分:1)

您只需要struct2cellcell2matnanmean的组合:

matData = cell2struct(num2cell(randn(192,144,8766),[1,2]), 'shape', 1); % Sample input

result = nanmean(cell2mat(struct2cell(matData)),3);