主要内容

fillmissing

填补缺失值

描述

例子

F= fillmissing (一个“常数”,v用常量值填充数组或表中缺失的项v.如果一个那么是矩阵还是多维数组呢v可以是标量,也可以是向量。如果v是一个向量,那么每个元素在对应的列中指定填充值一个.如果一个那么,是表格还是时间表v也可以是单元格数组,其元素包含每个表变量的填充值。

的数据类型定义缺失值一个

  • - - - - - -持续时间,calendarDuration

  • NaT- - - - - -datetime

  • < >失踪- - - - - -字符串

  • <定义>- - - - - -分类

  • {"}- - - - - -细胞特征向量

如果一个是一个表,则每列的数据类型定义该列缺少的值。

例子

F= fillmissing (一个方法使用指定的方法填充缺失的项方法.例如,fillmissing (A,“之前”)的前一个非缺失项填充缺失项一个

例子

F= fillmissing (一个movmethod窗口使用带有窗口长度的移动窗口平均值或中值填充缺失项窗口.例如,fillmissing(“movmean”,5)使用窗口长度为5的移动平均值填充数据。

例子

F= fillmissing (一个fillfungapwindow使用函数句柄指定的自定义方法填补缺失条目的空白fillfun以及一个固定的窗口围绕每个间隙,从中计算填充值。fillfun必须有输入参数xsts,tq操作,它们是包含样本数据的向量xs的长度gapwindow,样本数据位置ts的长度gapwindow,以及丢失的数据位置tq操作.的位置ts而且tq操作是样本点向量的子集。

例子

F= fillmissing (___昏暗的的尺寸。一个除前面语法中的任何输入参数组合外,还可以进行操作。默认情况下,fillmissing沿着大小不等于1的第一个维度进行操作。例如,如果一个是矩阵吗fillmissing (2)的列一个,逐行填充缺失的数据。

例子

F= fillmissing (___名称,值指定使用一个或多个名称-值实参填充缺失值的附加参数。例如,如果t是一个时间值的向量吗fillmissing (A,“线性”,“SamplePoints”,t)插入数据一个相对于时代而言t

例子

F特遣部队) = fillmissing (___也返回一个逻辑数组特遣部队中已填充项的位置F这些都是之前丢失的。

例子

全部折叠

创建一个包含值,并替换每个值使用前面的非缺失值。

A = [1 3 NaN 4 NaN NaN 5];F = fillmissing (,“以前”
F =1×71 3 3 4 4 4 4 5

创建一个2 × 2矩阵值。填满One hundred.在第一列和1000在第二列。

A = [1 NaN;南2]
一个=2×21楠楠2
F = fillmissing (,“不变”1000年[100])
F =2×21 1000 100 2

使用插值替换非均匀采样数据中的值。

定义一个非均匀采样点的向量,并计算在这些点上的正弦函数。

X = [-4*pi:0.1:0, 0.1:0.2:4*pi];一个= sin (x);

注入值到一个

A(A < 0.75 & A > 0.5) = NaN;

使用线性插值填充缺失的数据,并返回填充的向量F逻辑向量特遣部队.值1 (真正的)在特遣部队对应的值F吃饱了。

(F, TF) = fillmissing (,“线性”“SamplePoints”, x);

绘制原始数据和填充数据。

散射(x)散射(x (TF), F (TF))传说(“原始数据”填充数据的

图中包含一个axes对象。坐标轴对象包含两个散点类型的对象。这些对象表示原始数据、填充数据。

使用移动中位数填充缺失的数值数据。

创建一个样本点的向量x一个数据向量一个包含缺失值的。

x = linspace (0, 10200);A = sin(x) + 0.5*(rand(size(x))-0.5);A([1:10 randi([1长度(x)],1,50)]) = NaN;

取代一个使用窗口长度为10的移动中位数,并绘制原始数据和填充数据。

F = fillmissing (,“movmedian”10);情节(x, F,“。”)举行情节(x,,“。”)传说(“原始数据”填充数据的

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示原始数据、填充数据。

定义一个要填充的自定义函数具有前一个非缺失值的值。

定义一个样本点的向量t和对应数据的向量一个包含值。图数据。

t = 10:10:100;A = [0.1 0.2 0.3 NaN NaN 0.6 0.7 NaN 0.9 1];散射(t)

图中包含一个axes对象。axes对象包含一个scatter类型的对象。

使用local函数forwardfill(在示例末尾定义),以用前面的非缺失值填充缺失的空白。函数句柄的输入包括:

  • xs-用于填充的数据值

  • ts-用于填充的值相对于样本点的位置

  • tq操作-缺失值相对于样本点的位置

  • n-空白中需要填充的值的数量

n = 2;Gapwindow = [10 0];[F,TF] = fillmissing(A,@(xs,ts,tq) forwardfill(xs,ts,tq,n),gapwindow,“SamplePoints”t);

间隙窗口值(10 0)告诉fillmissing考虑在缺失间隙之前有一个数据点,在缺失间隙之后没有数据点,因为之前的非缺失值位于间隙之前10个单位。函数句柄的输入值由fillmissing对于第一个差距是:

  • x = 0.3

  • ts = 30

  • Tq = [40 50]

第二个间隙的函数句柄输入值是:

  • x = 0.7

  • ts = 70

  • tq = 80

绘制原始数据和填充数据。

散射(t)散射(t (TF), F (TF))

图中包含一个axes对象。坐标轴对象包含两个散点类型的对象。

函数ts, y = forwardfill (xs tq, n)使用之前的非缺失值填充缺失空白中的n个值y =南(1,元素个数(tq));y (1: min(元素个数(tq), n)) = x;结束

创建一个包含缺失条目的矩阵,并使用线性插值每次填充列(二次元)一行。对于每一行,用该行中最接近的非缺失值填充前尾缺失值。

A =[南南5 3南5 7南9南;8 9南1 4 5南5南5;NaN 4 9 8 7 2 4 1 1 NaN]
一个=3×10南南5 3南5 7南9南8 9南1 4 5南5南5南5南4 9 8 7 2 4 1 1南
F = fillmissing (,“线性”,2,“EndValues”“最近的”
F =3×105 5 5 3 4 5 7 8 9 9 8 9 5 1 4 5 5 5 5 5 5 5 5 4 4 9 8 7 2 4 1 1 1 1

填充具有不同数据类型的表变量的缺失值。

创建一个包含以下变量的表分类,字符数据类型。

一个=表(分类({“阳光”“多云”}), 66;南;54) {“N”“Y”}, [37;39;南),...“VariableNames”, {“描述”“温度”“雨”“湿度”})
一个=3×4表描述温度雨湿度  ___________ ___________ __________ ________ 阳光66 {0 x0 char} 37多云南{' N '} 39 <定义> 54 {Y} NaN

用前一个条目的值替换所有缺失的条目。中没有之前的元素变量,则不替换缺失的字符向量。

F = fillmissing (,“以前”
F =3×4表描述温度雨湿度  ___________ ___________ __________ ________ 阳光66 {0 x0 char} 37多云66 {' N '} 39多云54 {Y} 39

取代温度而且湿度变量一个用0。

F = fillmissing (,“不变”0,“DataVariables”, {“温度”“湿度”})
F =3×4表描述温度雨湿度  ___________ ___________ __________ ________ 阳光66 {0 x0 char} 37多云0 39 {' N '} <定义> 54 {Y} 0

另外,使用isnumeric函数标识要操作的数值变量。

F = fillmissing (,“不变”0,“DataVariables”@isnumeric)
F =3×4表描述温度雨湿度  ___________ ___________ __________ ________ 阳光66 {0 x0 char} 37多云0 39 {' N '} <定义> 54 {Y} 0

现在填充缺失的值一个为每个表变量指定一个常量,这些变量包含在单元格数组中。

F = fillmissing (,“不变”,{分类({“没有”}), 1000,“未知”1000})
F =3×4表描述温度雨湿度  ___________ ___________ ___________ ________ 阳光66{‘未知’}37多云1000 {' N '} 39没有54 1000 {Y}

创建一个时间矢量t以秒和一个对应的数据向量一个包含值。

T = seconds([2 4 8 17 98 134 256 311 1001]);A =[1 3 23南南南100南233];

只填写缺失的值一个对应的最大间隙大小为250秒。因为秒差大于250秒,所以值未填充。

F = fillmissing (,“线性”“SamplePoints”t“MaxGap”秒(250))
F =1×91.000 3.0000 23.0000 25.7944 50.9435 62.1210 100.0000 NaN 233.0000

输入参数

全部折叠

输入数据,指定为向量、矩阵、多维数组、字符向量的单元格数组、表格或时间表。

  • 如果一个是时间表,则只填充表值。如果行时间的相关向量包含aNaT值,然后fillmissing产生一个错误。行时间必须是唯一的,并按升序列出。

  • 如果一个那么,单元格数组是单元格数组还是单元格数组变量表fillmissing当单元格数组包含字符向量时,仅填充缺失的元素。

填充常数,指定为标量、向量或单元格数组。

  • 如果一个那么是矩阵还是多维数组呢v可以是一个矢量,指示每个操作维度的不同填充值。的长度v必须与操作尺寸的长度相匹配。

  • 如果一个那么,是表格还是时间表v可以是填充值的单元格数组,指示每个变量的不同填充值。单元格数组中的元素数量必须与表中的变量数量匹配。

填充方法,指定为以下值之一:

方法 描述
“以前” 以前的常数的值
“下一个” 下一个常数的值
“最近的” 常数的值
“线性” 相邻的,非缺失值的线性插值(数值,持续时间,datetime数据类型)
样条的 分段三次样条插值(数值,持续时间,datetime数据类型)
“pchip” 保持形状的分段三次样条插值(数值,持续时间,datetime数据类型)
“makima” 修正的Akima立方Hermite插值(数值,持续时间,datetime数据类型)

移动方法来填充缺失的数据,指定为以下值之一:

方法 描述
“movmean” 窗口长度的移动平均线窗口(仅限数字数据类型)
“movmedian” 在窗口长度上移动中值窗口(仅限数字数据类型)

用于移动方法的窗口长度,指定为正整数标量、正整数的两个元素向量、正持续时间标量或正持续时间的两个元素向量。窗口是相对于样本点定义的。

如果窗口是正整数标量,则窗口以当前元素为中心并包含窗口1相邻的元素。如果窗口为偶数,则窗口以当前和以前的元素为中心。

如果窗口是正整数的二元向量吗f [b],则窗口包含当前元素,b元素向后,f元素。

如果一个是时间表还是SamplePoints指定为datetime持续时间向量,则窗口必须为类型持续时间

例子:@ (xs, ts, tq) myfun (xs, ts, tq操作)

自定义填充方法,指定为函数句柄。有效的函数句柄必须包含以下三个输入参数:

输入参数 描述
xs 包含用于填充的数据值的向量。的长度xs必须与指定窗口的长度相匹配。
ts 包含用于填充的值的位置的向量。的长度ts必须与指定窗口的长度相匹配。ts是样本点向量的子集。
tq操作 包含缺失值位置的向量。tq操作是样本点向量的子集。

函数必须返回一个标量或一个长度与tq操作

自定义填充函数的间隙窗口长度,指定为正整数标量、正整数的两个元素向量、正持续时间标量或正持续时间的两个元素向量。间隙窗口是相对于样本点定义的。

当指定函数句柄时fillfun对于填充方法,的值gapwindow表示包含输入数据中缺失值的每个空白的固定窗口长度。然后计算填充值fillfun使用该窗口中的值。例如,对于默认采样点t = 1:10和数据A =[10 20南南50 60 70南90 100],窗口长度gapwindow = 3指定第一个间隙窗口为[20南南50]fillfun操作以计算填充值。第二个缺口就是fillfun操作是(90年70年南)

一个是时间表还是SamplePoints指定为datetime持续时间向量,gapwindow必须符合类型持续时间

操作尺寸,指定为正整数标量。如果没有指定值,则默认为大小不等于1的第一个数组维度。

考虑一个——- - - - - -n输入矩阵,一个

  • fillmissing(方法1)的每列数据填充缺失值一个并返回一个——- - - - - -n矩阵。

    fillmissing(方法1)列操作

  • fillmissing(方法2)的每一行数据填充缺失的值一个并返回一个——- - - - - -n矩阵。

    一点fillmissing(方法2)行操作操作

对于表或时间表输入数据,昏暗的不支持,操作将分别沿着每个表或时间表变量进行。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:fillmissing (T)方法,“SamplePoints”、“Var1”)

数据选项

全部折叠

样本点,指定为样本点值的向量,如果输入数据是表格,则指定为下表中的选项之一。样本点代表x-数据的坐标轴位置,并且必须排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]是默认的。

当输入数据是一个表时,您可以使用以下选项之一将样本点指定为表变量:

表格输入选项 描述 例子
变量名

指定单个表变量名的字符向量或标量字符串

“Var1”

“Var1”

标量变量指数

标量表变量索引

3.

逻辑向量

一个逻辑向量,其每个元素都对应一个表变量,其中真正的指定对应的变量作为样本点,所有其他元素为

(真的假的假的)

函数处理

接受表变量作为输入并返回逻辑标量的函数句柄真正的只针对一个表变量

@isnumeric

vartype下标

方法生成的表下标vartype仅为一个变量返回下标的函数

vartype(数字)

请注意

当输入数据为时,不支持此名称-值参数时间表.时间表使用行时间的向量作为样本点。要使用不同的样本点,必须编辑时间表,使行时间包含所需的样本点。

移动窗口是相对于样本点定义的。例如,如果t那么,乘以的向量是否对应于输入数据呢fillmissing(兰德(1 10)“movmean”,3,SamplePoints, t)是否有一个表示时间间隔的窗口-1.5 t(我)而且t(我)+ 1.5

当样本点向量具有数据类型时datetime持续时间,移动窗口长度必须有类型持续时间

例子:fillmissing([1 NaN 3 4],'linear','SamplePoints',[1 2.5 3 4])

例子:fillmissing (T,“线性”,“SamplePoints”,“Var1”)

数据类型:||datetime|持续时间

表要操作的变量,指定为此表中的选项之一。的DataVariables值指示要填充的输入表变量。

表中未指定的其他变量DataVariables传递到输出而不被填充。

选项 描述 例子
变量名

指定单个表变量名的字符向量或字符串标量

“Var1”

“Var1”

变量名的向量

字符向量或字符串数组的单元格数组,其中每个元素都是表变量名

{“Var1”“Var2”}

[" Var1”“Var2”)

可变指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

一个逻辑向量,其每个元素都对应一个表变量,其中真正的包括相应的变量和不包括它

(真的假的真的)

函数处理

接受表变量作为输入并返回逻辑标量的函数句柄

@isnumeric

vartype下标

方法生成的表下标vartype函数

vartype(数字)

例子:fillmissing (T,“线性”,“DataVariables”,(“Var1”“Var2”“Var4”])

替换值指示符,指定为这些值之一时一个表格或时间表:

  • 真正的1-将包含缺失项的输入表变量替换为填充的表变量。

  • 0-用所有检查过的表变量添加输入表。填充附加变量中缺失的条目。

对于矢量、矩阵或多维数组输入数据,ReplaceValues不支持。

例子:fillmissing (T,‘以前’,‘ReplaceValues’,假)

缺失值的选择

全部折叠

处理端点的方法,指定为“extrap”“以前”“下一个”“最近的”“没有”,或常数标量值。端点填充方法根据以下定义处理前导和尾随缺失值:

方法 描述
“extrap” 一样方法
“以前” 以前的常数的值
“下一个” 下一个常数的值
“最近的” 常数的值
“没有” 没有填写价值
标量 恒定值(数值,持续时间,datetime数据类型)

已知的缺失指标,指定为大小相同的逻辑向量、矩阵或多维数组一个.指示器元素可以是真正的的相应位置上的缺失值一个否则。

数据类型:逻辑

要填充的最大间隙大小,指定为数值标量,持续时间标量或calendarDuration标量。间隙是连续缺失值的簇,其大小是间隙周围非缺失值之间的距离。间隙大小是相对于样本点计算的。小于或等于最大间隙大小的间隙被填充,大于最大间隙大小的间隙不被填充。

例如,考虑向量y =[25南南100]使用默认的样本点[1 2 3 4].矢量中的间隙大小是由样本点计算出来的4 - 1 = 3,所以MaxGap的价值2不更改所缺少的值MaxGap的价值3.填充缺失的值。

对于数据开头或结尾缺少值:

  • 在输入数据的开始或结束处的单个缺失值的空白大小为0,并且总是被填充。

  • 在输入数据的开始或结束处出现的缺失值簇并没有完全被非缺失值包围,因此使用最近的现有样本点计算间隙大小。对于默认的样本点1: N,这产生的间隙大小比在数据中间出现相同的集群时小1。

输出参数

全部折叠

已填充的数据,作为向量、矩阵、多维数组、表或时间表返回。

F是一样的尺寸吗一个除非ReplaceValues.的值ReplaceValues,则宽度F输入数据宽度与指定的数据变量数量的和。

已填充的数据指示器,作为向量、矩阵或多维数组返回。特遣部队是一个逻辑数组,其中1 (真正的)对应于已填入的条目F先前丢失的和0 ()对应未更改的条目。

特遣部队是一样的尺寸吗F

数据类型:逻辑

提示

  • 对于非字符向量的结构数组或单元格数组的输入数据,fillmissing不填充任何条目。若要填充结构数组中缺失的项,请应用fillmissing的结构中的每个字段structfun函数。若要填充非字符向量的单元格数组中的缺失项,请应用fillmissing单元格数组中的每个单元格cellfun函数。

扩展功能

版本历史

介绍了R2016b

全部展开

Baidu
map