我在4D矩阵上使用MATLAB中的mean
函数。
矩阵是一个32x2x20x7
数组,我希望找到每个第4维的每一行,所有第3维的列和元素的均值。
因此,基本上是每个b, c
的均值(data(b,:,:,c)) [伪代码]。
但是,当我这样做时,它会为每个第3维吐出单独的均值,您是否知道如何得到上述等式的一个均值-,所以它将是( 32x7 =)224均值。
最佳答案
请注意,通过两次调用mean
,根据操作顺序,结果中的数值差异会很小。因此,我建议一次调用mean
来避免这种情况:
squeeze(mean(reshape(data,size(data,1),[],size(data,4)),2))
或者,如果您不喜欢
squeeze
(有些人喜欢!):mean(permute(reshape(data,size(data,1),[],size(data,4)),[1 3 2]),3)
这两个命令都使用
reshape
组合data
的第二维和第三维,以便在新的较大的第二维上对mean
的单个调用将执行所有所需的计算。
关于arrays - 选定维度上4D阵列的均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20451864/