我有一個包含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