主要内容

nanstd

(不推荐)标准差,忽略 NaN

不推荐使用 nanstd。请改用 MATLAB® 函数 std。使用 std 函数,您可以指定在计算时是包括还是省略 NaN 值。有关详细信息,请参阅版本历史记录

说明

y = nanstd(X)X 的标准差 std,是在删除所有 NaN 值后进行计算的。

  • 如果 X 是向量,则 nanstd(X)X 的所有非 NaN 元素的样本标准差。

  • 如果 X 是矩阵,则 nanstd(X) 是由列样本标准差组成的行向量,是在删除 NaN 值后进行计算的。

  • 如果 X 是多维数组,则 nanstd 沿 X 的第一个非单一维度执行运算。此维度的大小变为 1,而所有其他维度的大小保持不变。nanstd 会删除所有 NaN 值。

  • 默认情况下,nanstd 通过 n - 1 对 y 进行归一化,其中 n 是删除具有 NaN 值的观测值后其余的观测值数。

示例

y = nanstd(X,flag) 返回基于 flag 指定的归一化的 X 的标准差。flag0(默认值)或 1,以分别指定通过 n-1 或 n 进行归一化,其中 n 是删除具有 NaN 值的观测值后其余的观测值数。

示例

y = nanstd(X,flag,'all') 返回 X 的所有元素的标准差,是在删除 NaN 值后进行计算的。

示例

y = nanstd(X,flag,dim) 返回沿 X 的运算维度 dim 的标准差,是在删除 NaN 值后进行计算的。

示例

y = nanstd(X,flag,vecdim) 返回在向量 vecdim 中指定的维度上的标准差。该函数在删除 NaN 值后计算标准差。例如,如果 X 是矩阵,则 nanstd(X,0,[1 2])X 中所有非 NaN 元素的样本标准差,因为矩阵的每个元素都包含在由维度 1 和 2 定义的数组切片中。

示例

示例

全部折叠

求具有缺失值的矩阵数据的列标准差。

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanstd(X)
y = 1×3

    0.7071    2.8284       NaN

加载 carsmall 数据集。

load carsmall

计算 Horsepower 数据的总体和样本标准差。nanstd 函数会忽略 Horsepower 中的缺失值。

y1 = nanstd(Horsepower,1)   % Population formula
y1 = 
45.2963
y2 = nanstd(Horsepower,0)   % Sample formula
y2 = 
45.5268

求一个数组中所有值的标准差,忽略缺失值。

创建一个包含一些缺失值的 3×4×2 数组 X

X = reshape(1:24,[3 4 2]);
X([8:10 18]) = NaN
X = 
X(:,:,1) =

     1     4     7   NaN
     2     5   NaN    11
     3     6   NaN    12


X(:,:,2) =

    13    16    19    22
    14    17    20    23
    15   NaN    21    24

X 的元素的样本标准差。

y = nanstd(X,0,'all')
y = 
7.5385

求具有缺失值的矩阵数据的行标准差。指定沿第二个维度计算样本标准差。

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanstd(X,0,2)
y = 3×1

         0
    1.4142
         0

查找多维数组在多个维度上的标准差。

创建一个包含一些缺失值的 3×4×2 数组 X

X = reshape(1:24,[3 4 2]);
X([8:10 18]) = NaN
X = 
X(:,:,1) =

     1     4     7   NaN
     2     5   NaN    11
     3     6   NaN    12


X(:,:,2) =

    13    16    19    22
    14    17    20    23
    15   NaN    21    24

通过将维度 1 和 2 指定为运算维度,求 X 的每页的样本标准差。

ypage = nanstd(X,0,[1 2])
ypage = 
ypage(:,:,1) =

    3.8079


ypage(:,:,2) =

    3.7779

例如,ypage(1,1,2)X(:,:,2) 中非 NaN 元素的样本标准差。

通过将维度 2 和 3 指定为运算维度,求每个 X(i,:,:) 切片中元素的样本标准差。

yrow = nanstd(X,0,[2 3])
yrow = 3×1

    7.9102
    7.6904
    8.2158

例如,yrow(3)X(3,:,:) 中非 NaN 元素的样本标准差。

输入参数

全部折叠

输入数据,指定为标量、向量、矩阵或多维数组。

数据类型: single | double

用于计算标准差的归一化指示符,指定为 01

  • 如果 flag0(默认值),则 nanstd 返回 X样本标准差nanstd(X,0)nanstd(X) 相同。

  • 如果 flag1,则 nanstd 返回 X总体标准差

数据类型: single | double

用于运算的维度,指定为正整数标量。如果不指定值,则默认值是大小不等于 1 的第一个数组维度。

dim 表示其长度减小到 1 的维度。size(y,dim) 为 1,而所有其他维度的大小保持不变。

假设有一个二维数组 X

  • 如果 dim 等于 1,则 nanstd(X,0,1) 返回一个包含每列的样本标准差的行向量。

  • 如果 dim 等于 2,则 nanstd(X,0,2) 返回一个包含每行的样本标准差的列向量。

如果 dim 大于 ndims(X),或 size(X,dim) 为 1,则 nanstd 返回全零数组,其维度和缺失值与 X 相同。

数据类型: single | double

维度向量,指定为正整数向量。vecdim 的每个元素表示输入数组 X 的一个维度。输出 y 在指定运算维度中的长度为 1。Xy 的其他维度长度相同。

例如,如果 X 为 2×3×3 数组,则 nanstd(X,0,[1 2]) 返回 1×1×3 数组。输出数组的每个元素均为 X 的对应页上的元素的样本标准差。

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

数据类型: single | double

输出参量

全部折叠

标准差值,以标量、向量、矩阵或多维数组形式返回。

详细信息

全部折叠

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部折叠

另请参阅

|