问题描述
我正在尝试获取以下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)