如何在Matlab中计算每页的标准差?

3
假设我有一个100x200x300的矩阵A。在Matlab中,第三个维度被称为“页”,因此该矩阵有300页。
现在我想计算每个页内的标准差,并得到一个1x1x300的结果矩阵。
我不能简单地这样做:
std(std(A,0,1),0,2)

因为我认为规范化会出现错误。

1个回答

4

您需要使用reshape将前两个维度合并为一个(即列),然后沿着每一列计算std

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

这将会给你一个1x300的向量作为结果。如果你真的需要它是1x1x300,请使用

result = shiftdim(result, -1);

1
作为快捷方式,您可以始终执行 Ar = reshape(A, [], size(A,3)); - Edric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接