arrays - 在 matlab 中计算 3 维元胞数组的均值

标签 arrays matlab matrix cell mean

我有一个大小为 <20x1x19> 的元胞数组 C,每个元素都包含 19 个元素 一组 20 个大小为 (80x90) 的矩阵, 我如何计算每个 20 矩阵的平均值并将结果存储在矩阵 M 中,以便最终我将得到一个大小为 80x90x19 的矩阵,其中包含元胞数组矩阵的平均值。

例如:

M(:,:,1) 将具有 C(:,:,1) 中元素的平均值;

M(:,:,2) 将具有 C(:,:,2) 中元素的平均值

等等。

最佳答案

一点数组操作可以让您放弃循环。您可以更改元胞数组的维度,以便 cell2mat 生成 80×90×19×20 的数组,之后您需要做的就是沿维度取平均值 # 4:

%# C is a 20x1x19 cell array containing 80x90 numeric arrays

%# turn C into 1x1x19x20, swapping the first and fourth dimension
C = permute(C,[4 2 3 1]);

%# turn C into a numeric array of size 80-by-90-by-19-by-20
M = cell2mat(C);

%# average the 20 "slices" to get a 80-by-90-by-19 array
M = mean(M,4);

关于arrays - 在 matlab 中计算 3 维元胞数组的均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12816302/

相关文章:

arrays - 如何在多维复数数组的特定维度内进行洗牌

Java : Why can't I declare an array as a simple Object?

python - 四倍精度特征值、特征向量和矩阵对数

java - 我的搜索过程通过多线程变得更慢

python - 检查矩阵中的值是否与数组中的值匹配,如果不匹配则返回矩阵索引

python - 在 Python 中复制字符串列表的最佳方法是什么?

JavaScript 定义数组大小并从另一个数组克隆

javascript - 这个键的值是一个数组吗?

MATLAB - FFT 中缺少基础

image - 将绘图保存到 matlab : difference between saveas and print 中的图像文件中