填补缺失的值
用常量值填充数组或表中缺失的项F
= fillmissing (一个
“常数”,v
)v
.如果一个
那么是矩阵还是多维数组呢v
可以是标量,也可以是向量。当v
是一个向量,每个元素指定的填充值对应的列一个
.如果一个
那么,是表格还是时间表v
也可以是单元格数组,其元素包含每个表变量的填充值。
的数据类型定义缺失值一个
:
南
- - - - - -双
,单
,持续时间
,calendarDuration
NaT
- - - - - -datetime
< >失踪
- - - - - -字符串
<定义>
- - - - - -分类
' '
- - - - - -字符
{"}
- - - - - -细胞
字符数组的
如果一个
是一个表,则每列的数据类型定义该列缺少的值。
南
值创建一个包含南
值并替换南
使用前面的非缺失值。
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)”)传说(“原始数据”,“填充缺失数据”)
南
移动中位数使用移动中位数填充缺失的数值数据。
创建一个样本点的向量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 -”)传说(“填充缺失数据”,“原始数据”)
定义一个要填充的自定义函数南
具有前一个非缺失值的值。
定义一个样本点的向量t
和对应数据的向量一个
包含南
值。绘制数据图。
T = 10:10:100;A = [0.1 0.2 0.3 NaN NaN 0.6 0.7 NaN 0.9 1];情节(t),“o”)
使用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),“罗”)
函数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
必须与操作尺寸的长度相匹配。
v
可以将单元格数组的值填充在什么时候一个
是一个表或时间表,指示每个变量的不同填充值。单元格数组中的元素数量必须与表中的变量数量匹配。
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|字符
|细胞
|分类
|datetime
|持续时间
方法
- - - - - -填补方法“以前”
|“下一个”
|“最近的”
|“线性”
|样条的
|“pchip”
|“makima”
填充方法,指定为以下之一:
方法 | 描述 |
---|---|
“以前” |
先前的非缺失值 |
“下一个” |
下一个非缺失值 |
“最近的” |
最近的非缺失值 |
“线性” |
相邻的非缺失值的线性插值(数值,持续时间 ,datetime 仅限数据类型) |
样条的 |
分段三次样条插值(数值,持续时间 ,datetime 仅限数据类型) |
“pchip” |
保持形状的分段三次样条插值(数值,持续时间 ,datetime 仅限数据类型) |
“makima” |
修正的Akima立方Hermite插值(数值,持续时间 ,datetime 仅限数据类型) |
movmethod
- - - - - -移动的方法“movmean”
|“movmedian”
填充缺失数据的移动方法,指定为以下之一:
方法 | 描述 |
---|---|
“movmean” |
窗口长度的移动平均线窗口 (仅限数字数据类型) |
“movmedian” |
在窗口长度上移动中值窗口 (仅限数字数据类型) |
fillfun
- - - - - -自定义填充方法例子:@ (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
|持续时间
gapwindow
- - - - - -间隙窗长自定义填充函数的间隙窗口长度,指定为正整数标量、正整数的两个元素向量、正持续时间标量或正持续时间的两个元素向量。间隙窗口是相对于样本点定义的。
当指定函数句柄时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
- - - - - -采样点vartype
下标样本点,指定为逗号分隔的对,由“SamplePoints”
如果输入数据是表格,则是样本点值的向量,或者是下表中的选项之一。样本点代表x-数据的坐标轴位置,并且必须排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]
是默认值。
当输入数据是一个表时,可以使用以下选项之一将示例点指定为表变量。
表格输入选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或标量字符串 |
|
标量变量索引 | 标量表变量索引 |
|
逻辑向量 | 一个逻辑向量,其每个元素都对应一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄 |
|
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
- - - - - -表要操作的变量vartype
下标表要操作的变量,指定为逗号分隔的对,由“DataVariables”
这张表中的一个选项。的“DataVariables”
值指示要填充的输入表变量。表中未指定的其他变量“DataVariables”
通过输出而不被操作。
选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或标量字符串 |
|
变量名的向量 | 字符向量的单元格数组或字符串数组,其中每个元素都是表变量名 |
|
可变指标的标量或向量 | 表变量索引的标量或向量 |
|
逻辑向量 | 一个逻辑向量,其每个元素都对应一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄 |
|
vartype 下标 |
方法生成的表下标 |
|
例子:fillmissing(T,'linear',' datavvariables ',["Var1" "Var2" "Var4"])
EndValues
- - - - - -处理端点的方法“extrap”
(默认)|“以前”
|“下一个”
|“最近的”
|“没有”
|标量方法处理端点,指定为逗号分隔的对,由“EndValues”
其中一个“extrap”
,“以前”
,“下一个”
,“最近的”
,“没有”
,或常数标量值。端点填充方法根据以下定义处理前导和尾随缺失值:
方法 | 描述 |
---|---|
“extrap” |
一样方法 |
“以前” |
先前的非缺失值 |
“下一个” |
下一个非缺失值 |
“最近的” |
最近的非缺失值 |
“没有” |
无填充值 |
标量 | 常量值(数值,持续时间 ,datetime 仅限数据类型) |
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|datetime
|持续时间
MissingLocations
- - - - - -已知缺失指标已知缺失的指示符,指定为逗号分隔的一对,由“MissingLocations”
和大小相同的逻辑向量、矩阵或多维数组一个
.指示器元素可以是真正的
的相应位置上的缺失值一个
或假
否则。
数据类型:逻辑
MaxGap
- - - - - -要填充的最大间隙大小持续时间
标量|calendarDuration
标量要填充的最大间隙大小,指定为数值标量,持续时间
标量或calendarDuration
标量。间隙是连续缺失值的簇,其大小是间隙周围非缺失值之间的距离。间隙大小是相对于样本点计算的。小于或等于最大间隙大小的间隙被填充,大于最大间隙大小的间隙不被填充。
例如,考虑向量y =[25南南100]
使用默认的样本点[1 2 3 4]
.矢量中的间隙大小是由样本点计算出来的4 - 1 = 3
,所以MaxGap
的价值2
不更改所缺少的值MaxGap
的价值3.
填充缺失的值。
对于数据开头或结尾缺少值:
输入数据末尾的一个缺失值的空白大小为0,并且总是被填充。
在输入数据的开始或结束处出现的缺失值簇并没有完全被非缺失值包围,因此使用最近的现有样本点计算间隙大小。对于默认的样本点1: N
,这产生的间隙大小比在数据中间出现相同的集群时小1。
F
-填充数据已填充的数据,作为向量、矩阵、多维数组、表或时间表返回。F
是一样的尺寸吗一个
.
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|字符
|字符串
|细胞
|表格
|时间表
|分类
|datetime
|持续时间
|calendarDuration
特遣部队
-填充数据指示器已填充的数据指示器,作为向量、矩阵或多维数组返回。特遣部队
是一个逻辑数组,其中1 (真正的
)对应于F
被填满的0 (假
)对应未更改的条目。特遣部队
是一样的尺寸吗一个
而且F
.
数据类型:逻辑
使用注意事项和限制:
的样条的
而且“makima”
方法不受支持。金宝app
不支持函数句柄填充方法。金宝app
的“MaxGap”
,“SamplePoints”
,“MissingLocations”
不支持名称-值对。金宝app
的“DataVariables”
名称-值对不能指定函数句柄。
的“EndValues”
名称-值对只能指定“extrap”
.
的语法fillmissing (movmethod,窗口)
不支持金宝app一个
是一张长长的时间表。
的语法fillmissing(“常数”,v)
必须为?指定标量值v
.
的语法fillmissing (___)
不支持字符向量变量金宝app时一个
是一张高高的桌子或高高的时间表。
有关更多信息,请参见高大的数组.
使用注意事项和限制:
的“MaxGap”
不支持名称-值对。金宝app
的“makima”
选项不支持。金宝app
当“SamplePoints”
值具有类型datetime
或者输入的数据是带有时间表的datetime
行次,只有方法“不变”
,“movmean”
,“movmedian”
都受支持金宝app。
函数的句柄输入fillmethod
参数不受支持。金宝app
backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。