0

私は、実験の参加者にそれぞれ対応する 100 個のエントリを持つ「データ」という名前の構造を持っています。100 個のエントリのそれぞれに、異なる値を与える複数の 6x6 行列が含まれています。

たとえば、最初の参加者のマトリックスの例は次のとおりです。

data.p001.matrixCB

   18.9737   17.0000   14.2829   12.4499   11.7898   10.0995
   18.1384   16.0000   13.4907   11.7898   11.2250   10.3441
   14.7986   12.5300   11.7898   11.7473   12.2066    9.3808
   14.3527   13.4536   12.9615   13.3417   12.7279   11.7047
   18.0278   17.8885   17.6068   17.4642   17.1464   16.6132
   24.1661   24.7790   23.7697   23.3880   22.6495   23.8537

...そしてこれは、同様のセットアップを持つ構造内の 100 のエントリの 1 つです。

100 人の参加者のマトリックス内の各セルの平均値を取得したいと考えています。したがって、位置 matrixCB(1,1) の 100 個の値と、マトリックス内の他のすべての位置の平均値が得られます。残念ながら、これがどのように行われるのかわかりません。また、ヘルプ機能もあまり役に立ちません。どんな援助でも大歓迎です!

4

2 に答える 2

1

構造は苦痛になる可能性があります。大量のコードを入力するのを避けるには、次のアプローチを取ることができます。

  1. 必要な行列をセル配列に変換
  2. cell 配列を 3D 行列に変形します
  3. 3 次元全体の平均を計算する

このためのコード:

Mcell = arrayfun(@(x) data.(sprintf('p%03d',x)).matrixCB, 1:100, 'uni', 0);
M = mean( reshape(cell2mat(Mcell), 6, 6, []), 3 );
于 2013-06-10T23:21:41.510 に答える