其实std(x,0)计算除以n-1的标准差,第二个参数默认是0,所以std(x)等价于std(x,0)
而std(x,1)计算除以n的标准差
而std2是用于计算矩阵元素的标准差,将多维的矩阵元素连成一列,再统计
实际上std2(x)是使用 std(x( : )),但是只能计算除以n-1的标准差,不能再选择
*如果你要除以n的标准差
对于向量可以std(x,1)
对于矩阵可以std(x( : ),1)
var的用法和std类似
还有一个坑就是function [ X_std ] = myStd( X ) %X_mean ,
% myStd 求解二维矩阵 ,除以n而不是n-1的标准差
X = double(X); %!!!!!! 如果输入的矩阵不是double,不转换就会出错
X_mean = mean(X(:));
[h , w] = size(X);
num = h*w;
X_std = ( sum( ( X(:)-X_mean ).^2 ) / num ).^0.5;%(:)
end