如何获取以下4D数组的中位数31x6x2x3?

问题描述

我正在尝试获取以下4D数组相同列的每一行的中位数:

df = randn(31,6,2,3)

我基本上有31行(i)的6个变量(j),两次冲击(k),所有这些重复了3次(n)。现在,重点关注第一个电击并获得31x6x3的阵列:

eg1 = squeeze(df(:,:,1,:)) %31x6x3
  

我想要得到的是同一列每一行的中位数:例如这3个重复的第一列的第一行,然后是3个重复的第一列的第二行,以此类推。这样更容易看到:

% median of every row of the first column in the 3 repetitions

median(eg1(1,:))
median(eg1(2,:))
median(eg1(3,:))

...

median(eg1(31,:))

% median of every row of the second column in the 3 repetitions

median(eg1(1,:))
...
median(eg1(31,:))

% basically the median of every row of the same column for every column
  

这将在1号和2号电击中完成。

有人可以帮我吗?

解决方法

您想要的是最后一个维度的中位数。 median接受所需的尺寸作为输入。

out=median(eg1,3)

out将是31x6的矩阵。

如果要从所有egx中获得该值,则只需要最后一个维度的中位数

out=median(df,4)