我有一个包含60个矩阵的文件。我希望获得这60个矩阵中每个值的平均值。在matlab中求和多个矩阵
因此矩阵[1,2]的[1,1]平均值的均值。
我无法使用平均命令,我不知道什么是最好的方式来做到这一点。
这里的文件:https://dl.dropbox.com/u/22681355/file.mat
我有一个包含60个矩阵的文件。我希望获得这60个矩阵中每个值的平均值。在matlab中求和多个矩阵
因此矩阵[1,2]的[1,1]平均值的均值。
我无法使用平均命令,我不知道什么是最好的方式来做到这一点。
这里的文件:https://dl.dropbox.com/u/22681355/file.mat
你可以试试这个:
% concatenate the contents of your cell array to a 100x100x60 matrix
c = cat(3, results_foptions{:});
% take the mean
thisMean = mean(c, 3);
进行四舍五入为最接近的整数,则可以使用
roundedMean = round(thisMean);
但我想要做的是实际上采取平均值在整个单元阵列与相同的位置 – user1723765 2013-02-20 15:18:17
所以基本上采取每个单元格中的第一个条目的均值,然后第二个数组的平均值,并最终与一个单一的矩阵与每个条目的手段 – user1723765 2013-02-20 15:18:42
@ user1723765请参阅我的更新答案。 – 2013-02-20 15:22:05
矩阵的平均值,可以计算几种不同的方式。
首先,你可以计算每列的均值,然后计算这些手段的意思是:
colMeans = mean(A);
matMean = mean(colMean);
或者你可以在矩阵转换成列向量,并计算平均直接
matMean = mean(A(:));
但我实际上想得到的是单个矩阵,其中每个条目的单元格阵列都是 – user1723765 2013-02-20 15:20:41
@ user1723765好的,您在原始问题中没有说清楚 – slayton 2013-02-20 15:43:31
你应该把所有的矩阵一起在三维,垫,如(矩阵):
mat(:,:,1) = mat1;
mat(:,:,2) = mat2;
mat(:,:,3) = mat3;
etc...
后来干脆:
mean(mat, 3);
其中参数“3”规定所需的平均accros第三维。
你不能使用'mean'命令是什么意思? – 2013-02-20 15:11:43
如果我键入mean(results_foptions),那么该文件包含60个单独的矩阵,那么我得到错误:???对'cell'类型的输入参数未定义的函数或方法'sum'。 错误在==>意思是28 y = sum(x)/ size(x,dim); – user1723765 2013-02-20 15:13:47
实际上,链接到的文件不包含60个单独的矩阵,而是包含这60个矩阵的一个单元格数组。 – 2013-02-20 15:17:39