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 个条目之一。

我想获得 100 名参与者的矩阵中每个单元格的平均值。因此,对于位置矩阵CB(1,1) 和矩阵中的所有其他位置,我将获得 100 个值的平均值。不幸的是,我看不到这是如何完成的,而且帮助功能也没什么帮助。任何帮助将不胜感激!

4

2 回答 2

1

Structures can be a pain. To avoid typing out a bunch of code, you could take the following approach:

  1. Convert required matrices to cell array
  2. Reshape the cell array into 3D matrix
  3. Compute means across 3rd dimension

Code for this:

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 回答
1

您可以将所有 100 矩阵相加Sum,然后除以 100 -Sum./100然后每个单元格将代表每个索引上所有 100 个单元格的平均值。

例如 -

Sum = A + B ; 
Sum./2 ; 
于 2013-06-10T22:28:22.080 回答