假设我有一个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);
Ar = reshape(A, [], size(A,3));
- Edric