我必须使用什么函数或循环来平均矩阵?

我必须使用什么函数或循环来平均矩阵?

问题描述:

我想找到所有的基质的平均:我必须使用什么函数或循环来平均矩阵?

数据=(数据{1} + ...... +数据{N})/ N) 其中Data {N}是矩阵m * n个..

谢谢你的sooo多

+0

'Data'是一个3D数组? – kennytm 2010-08-27 11:09:50

首先,您将您的电池阵列成3D阵列,那么你就可以取平均值,这样的:

tmp = cat(3,Data{:}); %# catenates the data, so that it becomes a m*n*z (or m*1*n) 
averageData = mean(tmp,3); %# takes average along 3rd dimension 

注:如果您以这种方式获得记忆问题,并且如果您不需要保留变量Data左右,你可以用Data代替tmp,所有的都可以正常工作。

另外,如果Data简直是一个m * n个数字阵列

averageData = mean(Data,2); 
+0

感谢您的建议.. – Nadhris 2010-08-28 08:36:39

如果你的电池阵列是非常大的,你可能要保持,因为它的内存使用量,从上述溶液路程。然后我会建议使用Matlab Central提供的工具mtimesxhere

N = length(Data); 
b = cell(N,1); 
b(:) = {1}; 
averageData = mtimesx(Data,b)/N; 

在上面的例子中,我假设Data是一个线形单元阵列。我从来没有亲自使用mtimesx,这个解决方案来自there,其中也讨论了时序问题。

希望这会有所帮助。

A.

+0

感谢您的帮助..我现在就试试吧! – Nadhris 2010-08-28 08:37:08