主要内容

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 =填充缺失(A,“以前”
F =1×71 3 3 4 4 4 5

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

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

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

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

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

注入值到一个

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

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

[F,TF] =填充缺失(A,“线性”“SamplePoints”, x);

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

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

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

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

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

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

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

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

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

定义要填充的自定义函数值与前面的非缺失值相同。

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

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

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

使用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对于第一个差距是:

  • Xs = 0.3

  • Ts = 30

  • Tq = [40 50]

第二个空格的函数句柄输入值是:

  • Xs = 0.7

  • Ts = 70

  • Tq = 80

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

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

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

函数Y =正向填充(xs,ts,tq,n)使用之前的非缺失值填充缺失空白中的n个值y = NaN(1,数字(tq));Y (1:min(数值(tq),n)) = xs;结束

创建一个缺少条目的矩阵,并使用线性插值一次填充跨列(第二次元)一行。对于每一行,用该行中最近的非缺失值填充开头和结尾的缺失值。

A = [NaN NaN 5 3 NaN 5 7 NaN 9 NaN;8 9 NaN 1 4 5 NaN 5 NaN 5;NaN 4 9 8 7 2 4 1 1 NaN]
一个=3×10南南5 3南5 7南9南8 9南1 4 5南5南4 9 8 7 2 4 1 1南
F =填充缺失(A,“线性”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 1

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

创建一个表,其变量包括分类,字符数据类型。

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

用前一项的值替换所有缺失的项。元素中没有previous元素变量时,缺失的字符向量不会被替换。

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

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

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

或者,使用isnumeric函数来标识要操作的数值变量。

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

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

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

创建时间向量t以秒为单位和相应的数据向量一个包含值。

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

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

F =填充缺失(A,“线性”“SamplePoints”t“MaxGap”秒(250))
F =1×91.0000 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 NaN NaN 50 60 70 NaN 90 100],窗口长度Gapwindow = 3指定第一个间隙窗口为[20 NaN NaN 50]fillfun操作,以计算填充值。第二个间隙窗口fillfun操作于[70 NaN 90]

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

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

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

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

    fillmissing(A,method,1)逐列操作

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

    fillmissing(A,method,2)逐行操作

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

名称-值参数

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

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

数据选项

全部折叠

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

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

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

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

“Var1”

“Var1”

标量变量索引

标量表变量索引

3.

逻辑向量

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

[真假假]

函数处理

接受表变量作为输入并返回逻辑标量(必须为)的函数句柄真正的仅用于一个表变量

@isnumeric

vartype下标

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

vartype(数字)

请注意

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

移动窗口是相对于样本点定义的。例如,如果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|持续时间

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

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

选项 描述 例子
变量名

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

“Var1”

“Var1”

变量名向量

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

{“Var1”“Var2”}

[" Var1”“Var2”)

变量指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

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

[真真假假]

函数处理

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

@isnumeric

vartype下标

类生成的表下标vartype函数

vartype(数字)

例子:fillmissing(T,'linear','DataVariables',["Var1" "Var2" "Var4"])

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

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

  • 0-在输入表中添加所有检查过的表变量。附加变量中的缺失项将被填充。

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

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

缺少值选项

全部折叠

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

方法 描述
“extrap” 一样方法
“以前” 先前未丢失的值
“下一个” 下一个非缺失值
“最近的” 最近的非缺失值
“没有” 无填充值
标量 常数值(数值,持续时间,datetime仅限数据类型)

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

数据类型:逻辑

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

例如,考虑向量y = [25 NaN NaN 100]使用默认的采样点[1 2 3 4].矢量中的间隙大小由样本点计算为4 - 1 = 3,所以aMaxGap的价值2保持缺失的值不变,而MaxGap的价值3.填充缺失的值。

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

  • 输入数据开头或结尾的单个缺失值的空白大小为0,并且始终被填充。

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

输出参数

全部折叠

填满的数据,以矢量、矩阵、多维数组、表格或时间表的形式返回。

F尺寸和一个除非ReplaceValues.如果的值ReplaceValues的宽度F输入数据宽度与指定的数据变量数量的和。

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

特遣部队尺寸和F

数据类型:逻辑

提示

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

扩展功能

版本历史

在R2016b中引入

全部展开