如何在matlab中计算每页STD?

时间:2014-08-06 11:27:56

标签: matlab standard-deviation

假设我的矩阵A为100x200x300。第三维称为" page"在Matlab中,这个矩阵有300页。

现在我想计算每个页面内的标准偏差,得到1x1x300的结果矩阵。

我不能做

std(std(A,0,1),0,2)

因为我认为正常化是错误的。

1 个答案:

答案 0 :(得分:4)

您需要使用reshape将前两个维度折叠为一个(即分成列);然后在每列上计算std

Ar = reshape(A, size(A,1)*size(A,2), size(A,3));
result = std(Ar);

这将为您提供1x300的矢量。如果你真的需要1x1x300,请使用

result = shiftdim(result, -1);