0

我的问题源于难以概念化 4D 矩阵(而不是 3D)。在 MATLAB 中,我将数据存储在 5x5x7x54 矩阵中。5x5 部分在对角线上是对称的,表示 5 个大脑区域之间的活动相关性。'7' 代表 7 个时间点,'54' 代表 54 名受试者,其中 3 组各 17 人(前 17 人为 Group1,接下来 17 人为 Group2,最后 17 人为 Group3)。

我想平均每个组中参与者的每个相关值,但我想为每个时间点分别执​​行此操作。例如,我想要时间点 1 的前 17 个受试者的平均相关值,然后是时间点 2 的平均相关值,等等。然后我想要时间点 1 的中间 17 个受试者的平均相关值,等等。

总之,我将为每组有 7 个 5x5 矩阵(所以总共 21 个 5x5 矩阵)。

我在 MATLAB 上绝对是垃圾,所以我最初考虑解决这个问题的方法是考虑将矩阵划分为循环,但我知道这既令人困惑又效率低下。但是,否则,我会非常迷茫,因为我很难将矩阵本身概念化。

任何人都可以提出行动计划吗?

4

1 回答 1

0

Ben Voigt 的评论很中肯,但可以做得更好。由于您要计算每组主题的平均值,因此让我们将主题和组维度分开:

A = reshape(A, [5 5 7 17 3]);

现在你有一个五维数组,其中最后两个维度是“主题”和“组”。让我们平均跨学科:

m = mean(A, 4);

结果是一个维度为 5 x 5 x 7 x 1 x 3 的数组。平均后,第四维度是一个单例。我们可以摆脱它:

m = squeeze(m);

之后,时间点t和组的平均相关矩阵gm(:, :, t, g)

于 2015-07-31T02:24:55.093 回答