主要内容

Matlab中缺少数据

使用缺失数据是数据预处理中的常用任务。虽然有时缺少值在数据中表示有意义的事件,但它们通常代表不可靠或无法使用的数据点。在任何一种情况下,Matlab®都有许多用于处理缺失数据的选项。

创建和组织缺少数据

MATLAB中缺少值的表单取决于数据类型。例如,数字数据类型如双倍的(不是一个数字)表示缺失的值。

x = [纳米1 2 3 4];

你也可以使用丢失的值表示缺少的数字数据或其他类型的数据,例如约会时间细绳, 和分类。matlab自动转换丢失的数据的本机类型。

xdouble = [缺少1 2 3 4]
xdouble =.1×5南1 2 3 4
xdatetime = [缺少DateTime(2014,1:4,1)]
xdatetime =1x5 DateTime.NAT 01-JAN-2014 01-FEB-2014 01-MAR-2014 01-APR-2014
xstring = [缺失“一种”“b”“C”“D”]
XString =.1x5字符串<缺失>“a”“b”c“”d“
xcategorical = [缺少分类({'cat1''cat2''cat3''cat4'})]
xcategorical =1x5分类<未定义> CAT1 CAT2 CAT3 CAT4

数据集可能包含要视为缺失数据的值,但不是MATLAB中的标准MATLAB缺失值,例如。你可以使用标准造理函数将这些值转换为数据类型的标准缺失值。例如,将4视为缺失双倍的附加值

XStandard =标准化(XDOBLE,[4 NAN])
XStandard =1×5NaN 1 2 3 Nan

假设您希望将缺失值作为数据集的一部分保持,但从其余数据中分离它们。几个MATLAB函数使您可以在进一步处理之前控制丢失值的放置。例如,使用'遗漏'选择与种类动作搬家s到数据的末尾。

xsort = sort(xstandard,'遗漏''最后的'
Xsort =.1×51 2 3南楠

查找,替换和忽略缺失数据

即使您在MATLAB中未明确创建缺失值,也可以在导入现有数据或使用数据计算时出现。如果您不知道数据中的缺失值,则后续计算或分析可能会误导。

例如,如果你在不知不觉地绘制一个包含a的向量价值,没有出现,因为阴谋功能忽略它并正常绘制剩余点。

nandata = [1:9 nan];情节(1:10,Nandata)

图包含轴。轴包含类型线的对象。

但是,如果您计算数据的平均值,结果是。在这种情况下,提前知道数据包含一个更有助于,然后选择在计算平均值之前忽略或删除它。

含义=平均值(Nandata)
含义= nan

找到一种方法s中的数据是通过使用的isnan.函数,返回指示任何位置的逻辑阵列价值。

tf = isnan(nandata)
tf =1x10逻辑阵列0 0 0 0 0 0 0 0 0 0 1

同样,不见了函数返回多个数据类型数据中缺失值的位置。

tfdouble = ismissing(xdouble)
tfdouble =1x5逻辑阵列1 0 0 0 0
tfdatetime = ismissing(xdatetime)
tfdatetime =1x5逻辑阵列1 0 0 0 0

假设您正在使用具有多种数据类型的变量组成的表或时间表。您可以找到一个呼叫的所有缺失值不见了,无论他们的类型如何。

xtable = table(xdouble',xdatetime',xstring',xcategorical')
xtable =.5×4表var1 var2 var3 var4 ____ ______________________ _____________南NAT <缺失> <未定义> <未定义> 1 01-jan-2014“A”CAT1 2 01-FEB-2014“B”CAT2 3 01-MAR-2014“C”CAT3 4 01-APR-2014“D”CAT4
tf = ismissing(xtable)
tf =5x4逻辑阵列1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

缺失的值可以表示处理或分析的无法使用的数据。用填充用另一个值替换缺失的值或使用rmmissing.完全删除缺失值。

xilless = fillmissing(xstandard,'不变',0)
Xill =.1×50 1 2 3 0
XRemove = rmmissing(XStandard)
Xremove =1×3.1 2 3.

许多MATLAB函数使您能够忽略缺失值,而无需明确定位,填充或首先删除它们。例如,如果您计算包含的向量的总和值,结果是。但是,你可以直接忽略通过使用的总和'omitnan'选择与功能。

Sumnan = Sum(xdouble)
校长= NAN.
sumomitnan = sum(xdouble,'omitnan'
Sumomitnan = 10.

也可以看看

|||

相关话题