首页 > 编程笔记 > MATLAB笔记 阅读:32

MATLAB var()和std()函数的用法(附带实例)

在 MATLAB 中,计算样本方差的函数为 var(),其调用格式及说明如下表所示:

表:var() 函数调用格式及说明
调用格式 说明
V = var(A) 如果 A 是向量,输出 A 中所有元素的样本方差;如果 A 是矩阵,输出 V 是行向量,其每一个元素是对应列的元素的样本方差,按观测值数量 -1 实现归一化
V = var(A,w) w 是权重向量,其元素必须为正,长度与 A 匹配
V = var(A,w,dim) 返回沿 dim 维度的方差
V = var(A,w,'all') 当 w 为 0 或 1 时,计算 A 的所有元素的方差
V = var(A,w,vecdim) 当 w 为 0 或 1 时,计算向量 vecdim 中指定维度的方差
V = var(...,'nanflag') 指定在上述任意语法的计算中包括还是忽略 NaN 值

计算样本标准差的函数为 std(),其调用格式及说明如下表所示:

表:std() 函数调用格式及说明
调用格式 说明
S = std(A) 按照样本方差的无偏估计计算样本标准差,如果 A 是向量,输出 S 是 A 中所有元素的样本标准差;如果 A 是矩阵,输出 S 是行向量,其每一个元素是对应列的元素的样本标准差
S = std(A,w) 为上述语法指定一个权重方案。w = 0 时(默认值),S 按 N-1 进行归一化。当 w = 1 时,S 按观测值数量 N 进行归一化
S = std(A,w,'all') 当 w 为 0 或 1 时,计算 A 的所有元素的标准差
S = std(A,w,dim) 使用上述任意语法沿维度 dim 返回标准差
S = std(A,w,vecdim) 当 w 为 0 或 1 时,计算 A 中向量 vecdim 指定维度的标准差
S = std(...,'nanflag') 指定在上述任意语法的计算中包括还是忽略 NaN 值

【实例】已知某批灯泡的寿命服从正态分布 N(µ,σ^2),今从中抽取 4 只进行寿命试验,测得数据(单位:h)为 1502, 1453, 1367, 1650。试估计参数 µ 和 σ。在 MATLAB 命令行窗口输入以下命令:
>> close all                 % 关闭当前已打开的文件
>> clear                     % 清除工作区的变量
>> A=[1502,1453,1367,1650];  % 输入灯泡寿命的数据矩阵
>> miu=mean(A)               % 计算寿命的均值
miu =
        1493
>> sigma=var(A)              % 计算方差
sigma =
   1.4069e+04
>> sigma^0.5                 % 计算标准差
ans =
  118.6114
>> sigma2=std(A,1)           % 使用函数计算标准差
sigma2 =
  118.6114
可以看出,两个估计参数分别为 1493 和 118.6114。

相关文章