假设我有 100x200x300 的矩阵 A
。第三维在Matlab中称为“页”,那么这个矩阵有300页。
现在我想计算每个页面内的标准偏差并得到 1x1x300 的结果矩阵。
我做不到
std(std(A,0,1),0,2)
因为我认为规范化是错误的。
最佳答案
您需要使用 reshape
将前两个维度折叠成一个(即折叠成列) ;然后计算 std
沿着每一列:
Ar = reshape(A, size(A,1)*size(A,2), size(A,3));
result = std(Ar);
这将为您提供一个 1x300 的矢量作为结果。如果你真的需要它是 1x1x300,使用
result = shiftdim(result, -1);
关于matlab - 如何在matlab中计算每页STD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159170/