主要内容

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(___的项对应的逻辑数组一个都被填满了。

例子

全部折叠

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

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

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

A = [1 NaN;南2]
一个=2×21楠楠2
F = fillmissing(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] = fillmissing(A,“线性”“SamplePoints”, x);

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

情节(x,,“。”x (TF), F (TF),“o”)包含(“x”);ylabel (“sin (x)”)传说(“原始数据”“填充缺失数据”

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

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

创建一个样本点的向量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 = fillmissing(A,“movmedian”10);情节(x, F,' r . - ', x,,“b -”)传说(“填充缺失数据”“原始数据”

图中包含一个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),“o”

图中包含一个axes对象。axis对象包含一个类型为line的对象。

使用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),“o”t (TF), F (TF),“罗”

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

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

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

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(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

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

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

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

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

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

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

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

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

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

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

F = fillmissing(A,“不变”,{分类({“没有”}), 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(A,“线性”“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产生错误。行时间必须是唯一的,并按升序列出。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|细胞|表格|时间表|分类|datetime|持续时间|calendarDuration

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

v什么时候可以是向量一个是一个矩阵或多维数组,为每个操作维度指示不同的填充值。的长度v必须与操作尺寸的长度相匹配。

v可以将单元格数组的值填充在什么时候一个是一个表或时间表,指示每个变量的不同填充值。单元格数组中的元素数量必须与表中的变量数量匹配。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|细胞|分类|datetime|持续时间

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

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

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

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

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

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

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

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

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

窗口是正整数标量,则窗口以当前元素为中心并包含窗口1相邻的元素。如果窗口为偶数,则窗口以当前和以前的元素为中心。如果窗口是正整数的二元向量吗f [b],则窗口包含当前元素,b反向元素,和f元素。

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|持续时间

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

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

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|持续时间

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

一个是一张表格或时间表,昏暗的不支持。金宝appfillmissing分别沿着每个表或时间表变量进行操作。

考虑一个二维输入数组,一个

  • 如果昏暗的= 1,然后fillmissing填满一个一列一列。

  • 如果昏暗的= 2,然后fillmissing填满一个一排一排。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

名称-值参数

指定逗号分隔的可选对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:fillmissing (A, DataVariables,{“温度”、“高度”})字段对应的列温度而且高度输入表的变量
数据选项

全部折叠

样本点,指定为逗号分隔的对,由“SamplePoints”如果输入数据是表格,则是样本点值的向量,或者是下表中的选项之一。样本点代表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|持续时间

表要操作的变量,指定为逗号分隔的对,由“DataVariables”这张表中的一个选项。的“DataVariables”值指示要填充的输入表变量。表中未指定的其他变量“DataVariables”通过输出而不被操作。

选项 描述 例子
变量名

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

“Var1”

“Var1”

变量名的向量

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

{“Var1”“Var2”}

[" Var1”“Var2”)

可变指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

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

[真假真]

函数处理

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

@isnumeric

vartype下标

方法生成的表下标vartype函数

vartype(数字)

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

缺少价值选项

全部折叠

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

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|datetime|持续时间

已知缺失的指示符,指定为逗号分隔的一对,由“MissingLocations”和大小相同的逻辑向量、矩阵或多维数组一个.指示器元素可以是真正的的相应位置上的缺失值一个否则。

数据类型:逻辑

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

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

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

  • 输入数据末尾的一个缺失值的空白大小为0,并且总是被填充。

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

输出参数

全部折叠

已填充的数据,作为向量、矩阵、多维数组、表或时间表返回。F是一样的尺寸吗一个

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|细胞|表格|时间表|分类|datetime|持续时间|calendarDuration

已填充的数据指示器,作为向量、矩阵或多维数组返回。特遣部队是一个逻辑数组,其中1 (真正的)对应于F被填满的0 ()对应未更改的条目。特遣部队是一样的尺寸吗一个而且F

数据类型:逻辑

扩展功能

在R2016b中引入