2

60 個の行列を含むファイルがあります。これらの 60 の行列全体で各値の平均を取得したいと思います。

したがって、行列全体の [1,1] の平均は [1,2] の平均です。

mean コマンドを使用できず、これを行う最善の方法がわかりません。

ファイルは次のとおりです。https://dl.dropbox.com/u/22681355/file.mat

4

3 に答える 3

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);
于 2013-02-20T15:16:20.363 に答える
1

次のように、すべての行列を 3 次元 (行列?) のmatにまとめる必要があります。

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

次に簡単に:

mean(mat, 3);

ここで、パラメーター「3」は、3 番目の次元での平均が必要であることを規定しています。

于 2013-02-20T15:23:35.383 に答える
0

行列の平均は、いくつかの異なる方法で計算できます。

最初に各列の平均を計算し、次にそれらの平均の平均を計算できます。

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

または、行列を列ベクトルに変換して、平均を直接計算することもできます

matMean = mean( A(:) );
于 2013-02-20T15:16:27.337 に答える