MATLAB 帮助中心
(不推荐)标准差,忽略 NaN 值
NaN
不推荐使用 nanstd。请改用 MATLAB® 函数 std。使用 std 函数,您可以指定在计算时是包括还是省略 NaN 值。有关详细信息,请参阅版本历史记录。
nanstd
std
y = nanstd(X)
y = nanstd(X,flag)
y = nanstd(X,flag,'all')
y = nanstd(X,flag,dim)
y = nanstd(X,flag,vecdim)
y = nanstd(X) 是 X 的标准差 std,是在删除所有 NaN 值后进行计算的。
y
X
如果 X 是向量,则 nanstd(X) 是 X 的所有非 NaN 元素的样本标准差。
nanstd(X)
如果 X 是矩阵,则 nanstd(X) 是由列样本标准差组成的行向量,是在删除 NaN 值后进行计算的。
如果 X 是多维数组,则 nanstd 沿 X 的第一个非单一维度执行运算。此维度的大小变为 1,而所有其他维度的大小保持不变。nanstd 会删除所有 NaN 值。
默认情况下,nanstd 通过 n - 1 对 y 进行归一化,其中 n 是删除具有 NaN 值的观测值后其余的观测值数。
示例
y = nanstd(X,flag) 返回基于 flag 指定的归一化的 X 的标准差。flag 是 0(默认值)或 1,以分别指定通过 n-1 或 n 进行归一化,其中 n 是删除具有 NaN 值的观测值后其余的观测值数。
flag
0
1
y = nanstd(X,flag,'all') 返回 X 的所有元素的标准差,是在删除 NaN 值后进行计算的。
y = nanstd(X,flag,dim) 返回沿 X 的运算维度 dim 的标准差,是在删除 NaN 值后进行计算的。
dim
y = nanstd(X,flag,vecdim) 返回在向量 vecdim 中指定的维度上的标准差。该函数在删除 NaN 值后计算标准差。例如,如果 X 是矩阵,则 nanstd(X,0,[1 2]) 是 X 中所有非 NaN 元素的样本标准差,因为矩阵的每个元素都包含在由维度 1 和 2 定义的数组切片中。
vecdim
nanstd(X,0,[1 2])
全部折叠
求具有缺失值的矩阵数据的列标准差。
X = magic(3); X([1 6:9]) = NaN
X = 3×3 NaN 1 NaN 3 5 NaN 4 NaN NaN
y = 1×3 0.7071 2.8284 NaN
加载 carsmall 数据集。
carsmall
load carsmall
计算 Horsepower 数据的总体和样本标准差。nanstd 函数会忽略 Horsepower 中的缺失值。
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
求具有缺失值的矩阵数据的行标准差。指定沿第二个维度计算样本标准差。
y = nanstd(X,0,2)
y = 3×1 0 1.4142 0
查找多维数组在多个维度上的标准差。
通过将维度 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 元素的样本标准差。
ypage(1,1,2)
X(:,:,2)
通过将维度 2 和 3 指定为运算维度,求每个 X(i,:,:) 切片中元素的样本标准差。
X(i,:,:)
yrow = nanstd(X,0,[2 3])
yrow = 3×1 7.9102 7.6904 8.2158
例如,yrow(3) 是 X(3,:,:) 中非 NaN 元素的样本标准差。
yrow(3)
X(3,:,:)
输入数据,指定为标量、向量、矩阵或多维数组。
数据类型: single | double
single
double
用于计算标准差的归一化指示符,指定为 0 或 1。
如果 flag 为 0(默认值),则 nanstd 返回 X 的样本标准差。nanstd(X,0) 与 nanstd(X) 相同。
nanstd(X,0)
如果 flag 为 1,则 nanstd 返回 X 的总体标准差。
用于运算的维度,指定为正整数标量。如果不指定值,则默认值是大小不等于 1 的第一个数组维度。
dim 表示其长度减小到 1 的维度。size(y,dim) 为 1,而所有其他维度的大小保持不变。
size(y,dim)
假设有一个二维数组 X:
如果 dim 等于 1,则 nanstd(X,0,1) 返回一个包含每列的样本标准差的行向量。
nanstd(X,0,1)
如果 dim 等于 2,则 nanstd(X,0,2) 返回一个包含每行的样本标准差的列向量。
nanstd(X,0,2)
如果 dim 大于 ndims(X),或 size(X,dim) 为 1,则 nanstd 返回全零数组,其维度和缺失值与 X 相同。
ndims(X)
size(X,dim)
维度向量,指定为正整数向量。vecdim 的每个元素表示输入数组 X 的一个维度。输出 y 在指定运算维度中的长度为 1。X 和 y 的其他维度长度相同。
例如,如果 X 为 2×3×3 数组,则 nanstd(X,0,[1 2]) 返回 1×1×3 数组。输出数组的每个元素均为 X 的对应页上的元素的样本标准差。
标准差值,以标量、向量、矩阵或多维数组形式返回。
样本标准差 S 由下式给出:
S=∑i=1n(xi−X¯)2n−1.
S 是从中抽取 X 的总体的方差的无偏估计量的平方根,其中 X 由独立同分布样本组成。X¯ 是样本均值。
请注意,此方差公式中的分母是 n - 1。
如果数据是值的整个总体,则可以使用总体标准差,
σ=∑i=1n(xi−μ)2n.
如果 X 是来自总体的一个随机样本,则均值 μ 是根据样本均值估计的值,σ 是总体标准差的有偏最大似然估计量。
请注意,此方差公式中的分母是 n。
全部展开
用法说明和限制:
不支持 'all' 和 vecdim 输入参量。
'all'
dim 输入参量必须为编译时常量。
如果未指定 dim 输入参量,则生成的代码中的工作(或运算)维度可能不同。因此,可能会出现运行时错误。有关详细信息,请参阅在默认维度选择方面与 MATLAB 不兼容 (MATLAB Coder)。
有关代码生成的详细信息,请参阅 Introduction to Code Generation 和 General Code Generation Workflow。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
不推荐使用 nanstd。请改用 MATLAB 函数 std。目前没有删除 nanstd 的计划。
要更新您的代码,请将函数名称 nanstd 的实例更改为 std。然后为 nanflag 输入参量指定 'omitnan' 选项。
nanflag
'omitnan'
std 提供更多扩展功能,支持 tall 数组、GPU 数组、分布数组、C/C++ 代码生成和 GPU 代码生成。
NaN | std
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处