主要内容

填充

填补缺失值

描述

例子

F= fillmissing(一种,'持续的',V.填充缺少数组或表的缺失条目,持续值V..如果一种是矩阵还是多维数组V.可以是标量也可以是向量。当V.是一个矢量,每个元素指定相应列中的填充值一种.如果一种是一个表或时间表,然后V.也可以是单元格数组,其元素包含每个表变量的填充值。

缺少值根据数据类型定义一种

  • -单身的期间, 和calendarDuration

  • -约会时间

  • < >失踪-字符串

  • <未定义>-分类

  • ''-字符

  • {''}-细胞的字符数组

如果一种是一个表,然后每个列的数据类型定义该列的缺失值。

例子

F= fillmissing(一种方法使用指定的方法填充缺少的项方法.例如,Fillmissing(A,'之前')使用以前的非缺少条目填充缺失的条目一种

例子

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

例子

F= fillmissing(一种菲伦gapwindow使用函数句柄指定的自定义方法填充丢失条目的间隙菲伦和一个固定窗口,围绕计算填充值的每个间隙。菲伦必须有输入参数xsTS., 和TQ.,它们是包含样本数据的向量xs长度gapwindow,示例数据位置TS.长度gapwindow,以及缺少的数据位置TQ..的位置TS.TQ.是采样点矢量的子集。

例子

F= fillmissing(___暗淡指定维度一种运作。默认情况下,填充沿着尺寸不等于的第一维操作。例如,如果一种是一个矩阵fillmissing (2)在列中运行一种,逐行填充缺失数据。

例子

F= fillmissing(___名称,价值指定使用一个或多个名称-值对参数填充缺失值的附加参数。例如,如果T.那是时间值的矢量,然后填充(a,'线性','samplepoints',t)插入数据一种相对于时间T.

例子

[FTF.] =填充(___另外还返回对应于条目的逻辑阵列一种吃饱了。

例子

全部收缩

创建一个包含的向量值并替换每个以前的非缺失值。

a = [1 3 naN 4 nan nan 5];f = fillmissing(a,'以前的'
F =1×7.1 3 3 4 4 4 5

创建一个2 × 2矩阵每列的值。填100.在第一列和1000在第二列。

a = [1楠;南2]
A =2×21南纳2
f = fillmissing(a,“不变”,[100 1000])
F =2×21 1000 100 2

使用插值来代替非均匀抽样数据中的值。

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

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

注入值到一种

a(<0.75&a> 0.5)= nan;

使用线性插值填充缺失的数据,并返回填充的向量F和逻辑向量TF..值1 (真的)的条目TF.对应于值F吃饱了。

(F, TF) = fillmissing (,'线性''samplepoints', x);

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

绘图(x,a,'。',x(tf),f(tf),“o”)Xlabel('X');ylabel('sin(x)')传说(“原始数据”'充满了缺失的数据'

图中包含一个坐标轴。轴包含2个类型的型号。这些对象代表原始数据,填充缺失数据。

使用移动中值来填充丢失的数字数据。

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

x = Linspace(0,10,200);a = sin(x)+ 0.5 *(rand(尺寸(x)) -  0.5);a([1:10 RANDI([1长度(x)],1,50)])= nan;

取代价值一种使用带有长度10窗口的移动中位数,并绘制原始数据和填充数据。

f = fillmissing(a,“movmedian”10);情节(x, F,' r . - ',x,a,'B.-')传说('充满了缺失的数据'“原始数据”

图中包含一个坐标轴。轴包含2个类型的型号。这些对象表示填充缺失的数据,原始数据。

定义要填充的自定义函数具有以前的非贴头值的值。

定义样本点的向量T.和对应数据的向量一种包含价值观。绘制数据。

t = 10:10:100;a = [0.1 0.2 0.3纳米NaN NaN NaN 0.6 0.7纳米0.9 1];绘图(t,a,“o”

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

使用本地功能forwardfill(在示例的最后定义)来用前面的非缺失值填充缺失的空白。函数句柄输入包括:

  • xs- 用于填充的数据值

  • TS.-用于填充的值相对于采样点的位置

  • TQ.- 缺失值相对于采样点的位置

  • N- 填充间隙中的值数

n = 2;Gapwindow = [10 0];[F,TF] = A,@(xs,ts,tq) forwardfill(xs,ts,tq,n),gapwindow,'samplepoints',t);

差距窗口值[10 0]填充为了在缺失的间隙之前考虑一个数据点,并且在间隙之后没有数据点,因为之前的非贴头值在间隙之前定位了10个单元。函数处理输入值填充对于第一个差距是:

  • xs = 0.3

  • TS = 30.

  • TQ = [40 50]

第二间隙的函数处理输入值是:

  • xs = 0.7

  • TS = 70.

  • tq = 80.

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

绘图(t,a,“o”,t(tf),f(tf),'ro'

图中包含一个坐标轴。轴包含2个类型的型号。

功能ts, y = forwardfill (xs tq, n)使用以前的非贴头值填充缺失差距中的n值Y = NaN(1,Numel(TQ));Y(1:min(numel(tq),n))= xs;结尾

使用线性插值一次创建具有缺失条目的矩阵并填充列(第二维度)一行一行。对于每行,填充带有最接近的非缺失值的前导和尾随缺失值。

a = [纳米5 3纳米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]
A =3×10NaN 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
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 4 4 9 8 7 2 4 1 1 1

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

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

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

将所有缺失的条目替换为从上一个条目中的值。由于没有以前的元素变量,丢失的字符向量未被替换。

f = fillmissing(a,'以前的'
f =3×4表描述温度雨湿度___________ ___________ _________________________0x___0x_0 char} 37阴天66 {'n'} 39阴天54 {'y'} 39

更换来自的价值温度湿度变量in.一种用0。

f = fillmissing(a,“不变”0,'datavariables',{'温度''湿度'})
f =3×4表描述温度雨湿度___________ ___________ _____________________________0 char} 37阴天0 {'n'} 39 <未定义> 54 {'y'} 0

或者,使用isnumeric.函数识别数字变量进行操作。

f = fillmissing(a,“不变”0,'datavariables',@ isnumeric)
f =3×4表描述温度雨湿度___________ ___________ _____________________________0 char} 37阴天0 {'n'} 39 <未定义> 54 {'y'} 0

现在填补缺失的值一种对于每个表变量,包含在单元格阵列中的指定常量。

f = fillmissing(a,“不变”,{talicorical({“没有”}), 1000,'未知'1000})
f =3×4表描述温雨湿度___________ ___________ ______________________ ________ sunny 66 {'未知'} 37阴天1000 {'n'} 39没有54 {'y'} 1000

创建时间向量T.在几秒钟内和相应的数据矢量一种那个包含价值观。

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

仅填写缺失的值一种这对应于最大间隙尺寸为250秒。由于第二间隙大于250秒,因此值未填满。

f = fillmissing(a,'线性''samplepoints't'maxgap'秒(250))
F =1×9.1.0000 3.0000 23.0000 25.7944 50.9435 62.1210 100.0000 NaN 233.0000

输入参数

全部收缩

输入数据,指定为向量,矩阵,多维数组,表或时间表。

当输入参数是单元数组时,它必须是字符向量的单元格数组。如果一种是时间表,然后只填充表值。如果相关的行时间向量包含一个或者那么填充产生错误。行时间必须是唯一的,并以升序列出。

数据类型:|单身的|INT8.|int16|int32|int64|uint8|uint16|UINT32|UINT64|逻辑|字符|字符串|细胞|桌子|时间表|分类|约会时间|期间|calendarDuration

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

V.可以是矢量何时一种是矩阵或多维数组,指示每个操作维度的不同填充值。长度V.必须匹配操作维度的长度。

V.可以是填充值的小区数组一种是表或时间表,表示每个变量的不同填充值。单元格数组中的元素数必须与表中的变量数匹配。

数据类型:|单身的|INT8.|int16|int32|int64|uint8|uint16|UINT32|UINT64|逻辑|字符|细胞|分类|约会时间|期间

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

方法 描述
'以前的' 以前的非缺失值
“下一个” 下一个非缺失值
“最近的” 最近的non-missing价值
'线性' 相邻,非缺失值的线性插值(数字,期间, 和约会时间数据类型)
样条的 分段立方样条插值(数字,期间, 和约会时间数据类型)
'pchip' 形状保留分段立方样条插值(数字,期间, 和约会时间数据类型)
“makima” 修改Akima立方Hermite插值(数字,期间, 和约会时间数据类型)

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

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

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

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

输入参数 描述
xs 包含用于填充的数据值的向量。长度xs必须匹配指定窗口的长度。
TS. 矢量包含用于填充的值的位置的位置。长度TS.必须匹配指定窗口的长度。TS.是样本点矢量的子集。
TQ. 向量包含缺失值的位置。TQ.是样本点矢量的子集。

该函数必须返回具有相同长度的标量或向量TQ.

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

窗口是一个正整数标量,然后窗口以当前元素为中心,并包含窗口1相邻的元素。如果窗口甚至,窗口符合当前和以前的元素。如果窗口是一个正整数的二元向量吗[b f],然后窗口包含当前元素,B.元素向后,F元素前进。

一种是时间表或'samplepoints'被指定为一个约会时间或者期间向量,窗口必须是类型期间

数据类型:|单身的|INT8.|int16|int32|int64|uint8|uint16|UINT32|UINT64|期间

用于自定义填充功能的间隙窗口长度,指定为正整数标量,正整数的两个元素矢量,正持续时间标量或正持续时间的两个元素矢量。间隙窗口相对于采样点定义。

当指定函数句柄时菲伦对于填充方法,值为gapwindow表示包围输入数据中缺失值的每个间隙的固定窗口长度。然后计算填充值菲伦使用该窗口中的值。例如,对于默认采样点t = 1:10和数据a = [1020naNaN 50 60 70 na n纳米90 100],窗口长度GapWindow = 3.指定第一个窗口[20 NaN NaN 50]对于那么菲伦操作以计算填充值。第二个间隙窗口菲伦担任操作[70南90]

一种是时间表或'samplepoints'被指定为一个约会时间或者期间向量,窗口必须是类型期间

数据类型:|单身的|INT8.|int16|int32|int64|uint8|uint16|UINT32|UINT64|期间

维度运行,指定为正整数标量。如果没有指定值,则默认值是第一个数组维度,其大小不等于1。

一种是一个表或时间表,暗淡不受支持。万博1manbetx填充沿每个表或时间可变分别操作。

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

  • 如果昏暗的= 1, 然后填充填充一种列的列。

  • 如果昏暗的= 2, 然后填充填充一种行按行。

数据类型:|单身的|INT8.|int16|int32|int64|uint8|uint16|UINT32|UINT64

名称值对参数

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

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

全部收缩

示例点,指定为逗号分隔对组成'samplepoints'和矢量。样本点代表X中的数据的轴位置一种,并且必须排序并包含唯一的元素。样品点不需要均匀采样。默认采样点向量是[1 2 3…]

笔记

当输入数据为万博1manbetx时间表.时间表总是使用行时间向量作为样本点。要使用不同的样本点,必须编辑时间表,以便行时间包含所需的样本点。

移动窗口相对于采样点定义。例如,如果T.是与输入数据相对应的时间的矢量fillmissing(兰德(1 10)“movmean”,3,SamplePoints, t)有一个代表之间的时间间隔的窗口T(i)-1.5T(i)+1.5

当样本点向量具有数据类型时约会时间或者期间,然后移动窗口长度必须具有类型期间

例子:填充([1naN 3 4],'线性','Samplepoints',[1 2.5 3 4])

数据类型:单身的||约会时间|期间

表变量操作开启,指定为逗号分隔对组成'datavariables'以及此表中的其中一个选项。这'datavariables'值表示要填充的输入表的哪些变量。未指定的表中的其他变量'datavariables'传递到输出而不进行操作。

选项 描述 例子
变量名

指定单表变量名称的字符向量或标量标题

'var1'

“var1”

变量名称矢量

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

{“Var1”“Var2”}

[" Var1”“Var2”)

可变指标的标量或向量

表变量指数的标量或向量

1

[1 3 5]

逻辑矢量

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

[真为false]

函数处理

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

@isnumeric

vartype.下标.

属性生成的表下标vartype.功能

vartype('numeric')

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

缺失值的选择

全部收缩

处理端点的方法,指定为逗号分隔的配对组成'endvalues'一之一'extrap''以前的'“下一个”“最近的”'没有任何',或恒定的标量值。端点填充方法根据以下定义处理引导和尾随缺失值:

方法 描述
'extrap' 与...一样方法
'以前的' 以前的非缺失值
“下一个” 下一个非缺失值
“最近的” 最近的non-missing价值
'没有任何' 没有填充值
标量子 恒定值(数值,期间, 和约会时间数据类型)

数据类型:|单身的|INT8.|int16|int32|int64|uint8|uint16|UINT32|UINT64|逻辑|约会时间|期间

已知的缺失指示符,指定为逗号分隔对组成'遗漏'和具有相同大小的逻辑向量、矩阵或多维数组一种.指示元件可以是真的的对应位置上的缺失值一种或者错误的除此以外。

数据类型:逻辑

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

例如,考虑向量Y = [25南纳100]使用默认采样点[1 2 3 4].向量中的间隙大小由样本点计算为4 - 1 = 3,所以A.maxgap.的价值2留下缺失的值,而amaxgap.的价值3.填充缺失的值。

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

  • 输入数据末尾的单个缺失值具有0的间隙大小,始终填充。

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

输出参数

全部收缩

填充数据,作为向量,矩阵,多维数组,表或时间表返回。F大小是一样的吗一种

数据类型:|单身的|INT8.|int16|int32|int64|uint8|uint16|UINT32|UINT64|逻辑|字符|字符串|细胞|桌子|时间表|分类|约会时间|期间|calendarDuration

填充数据指示符,返回为向量,矩阵或多维数组。TF.是一个逻辑阵列,其中1(真的)对应于参赛作用F填满了0(错误的)对应于不变的条目。TF.大小是一样的吗一种F

数据类型:逻辑

扩展功能

介绍在R2016B.