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 for Statistics and Machine Learning Functions 和 。
有关详细信息,请参阅在 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 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处