2013-02-20 856 views
2

我有一個包含60個矩陣的文件。我希望獲得這60個矩陣中每個值的平均值。在matlab中求和多個矩陣

因此矩陣[1,2]的[1,1]平均值的均值。

我無法使用平均命令,我不知道什麼是最好的方式來做到這一點。

這裏的文件:https://dl.dropbox.com/u/22681355/file.mat

+0

你不能使用'mean'命令是什麼意思? – 2013-02-20 15:11:43

+0

如果我鍵入mean(results_foptions),那麼該文件包含60個單獨的矩陣,那麼我得到錯誤:???對'cell'類型的輸入參數未定義的函數或方法'sum'。 錯誤在==>意思是28 y = sum(x)/ size(x,dim); – user1723765 2013-02-20 15:13:47

+0

實際上,鏈接到的文件不包含60個單獨的矩陣,而是包含這60個矩陣的一個單元格數組。 – 2013-02-20 15:17:39

回答

4

你可以試試這個:

% 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); 
+0

但我想要做的是實際上採取平均值在整個單元陣列與相同的位置 – user1723765 2013-02-20 15:18:17

+0

所以基本上採取每個單元格中的第一個條目的均值,然後第二個數組的平均值,並最終與一個單一的矩陣與每個條目的手段 – user1723765 2013-02-20 15:18:42

+0

@ user1723765請參閱我的更新答案。 – 2013-02-20 15:22:05

0

矩陣的平均值,可以計算幾種不同的方式。

首先,你可以計算每列的均值,然後計算這些手段的意思是:

colMeans = mean(A); 
matMean = mean(colMean); 

或者你可以在矩陣轉換成列向量,並計算平均直接

matMean = mean(A(:)); 
+0

但我實際上想得到的是單個矩陣,其中每個條目的單元格陣列都是 – user1723765 2013-02-20 15:20:41

+0

@ user1723765好的,您在原始問題中沒有說清楚 – slayton 2013-02-20 15:43:31

1

你應該把所有的矩陣一起在三維,,如(矩陣):

mat(:,:,1) = mat1; 
mat(:,:,2) = mat2; 
mat(:,:,3) = mat3; 
etc... 

後來乾脆:

mean(mat, 3); 

其中參數「3」規定所需的平均accros第三維。