MATLAB中ismissing函数用法小结

 更新时间:2023年09月11日 09:57:29   作者:jk_101  
这篇文章主要介绍了MATLAB中ismissing函数用法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

ismissing函数的功能是寻找缺失的值。

语法

TF = ismissing(A)
TF = ismissing(A,indicator)
TF = ismissing(___,'OutputFormat',format)

说明

​TF = ismissing(A) 返回一个逻辑数组,该数组指示输入数据的哪些元素包含缺失值。TF 的大小与 A 的大小相同。

缺失值的定义取决于 A 的数据类型:​

  • NaN - double、single、duration 和 calendarDuration
  • NaT — datetime
  • <missing> — string
  • <undefined> — categorical
  • {''} - 字符向量的 cell

如果  A  是表,则每个变量的数据类型定义该变量的缺失值。

对于没有标准缺失值默认定义的数据类型,ismissing(A) 会返回一个与 A 大小相同的由逻辑值 0 (false) 组成的数组或表。

TF = ismissing(A,indicator) 将 indicator 中的值视为缺失值指示符,而忽略上述语法中列出的所有默认指示符。indicator 可以是单个指示符,也可以是多个指示符。例如,如果 A 是 double 类型的数组,则 ismissing(A,[0,-99]) 会将 0 和 -99 视为缺失的 double 值,而不是将 NaN 视为缺失值。

 TF = ismissing(___,'OutputFormat',format) 为表或时间表输入数据指定上述任一语法的输出数据类型。

示例

向量中的 NaN 值

创建一个包含 NaN 值的行向量 A,并确定这些值在 A 中的位置。

A = [3 NaN 5 6 7 NaN NaN 9];
TF = ismissing(A)
TF = 1x8 logical array
   0   1   0   0   0   1   1   0

包含多个数据类型的表

创建一个包含不同数据类型的变量的表。

dblVar = [NaN; 2; 3; 4; 5; 6];
singleVar = single([1; NaN; 3; 4; 5; 6]);
cellstrVar = {'one'; 'two'; ''; 'four'; 'five'; 'six'};
categoryVar = categorical({'red'; 'orange'; 'yellow'; ''; 'blue'; 'indigo'});
dateVar = [datetime(2015,1:4,15) NaT datetime(2015,6,15)]';
stringVar = ["a"; "b"; "c"; "d"; "e"; missing];
A = table(dblVar,singleVar,cellstrVar,categoryVar,dateVar,stringVar)
A=6×6 table
    dblVar    singleVar    cellstrVar    categoryVar      dateVar      stringVar
    ______    _________    __________    ___________    ___________    _________
     NaN           1       {'one'   }    red            15-Jan-2015    "a"      
       2         NaN       {'two'   }    orange         15-Feb-2015    "b"      
       3           3       {0x0 char}    yellow         15-Mar-2015    "c"      
       4           4       {'four'  }    <undefined>    15-Apr-2015    "d"      
       5           5       {'five'  }    blue                   NaT    "e"      
       6           6       {'six'   }    indigo         15-Jun-2015    <missing>

找出具有缺失值的元素。

ismissing 返回一个数组,对于 A 中具有缺失值的每个对应元素,该数组中对应的逻辑值均为 1。TF 的大小与 A 的大小相同。

TF = ismissing(A)
TF = 6x6 logical array
   1   0   0   0   0   0
   0   1   0   0   0   0
   0   0   1   0   0   0
   0   0   0   1   0   0
   0   0   0   0   1   0
   0   0   0   0   0   1

指定表中的缺失值指示符

创建一个表,其中 'NA'、''-99、NaN 和 Inf 表示缺失值。然后,找出具有缺失值的元素。

dblVar = [NaN; 3; Inf; 7; 9];
int8Var = int8([1; 3; 5; 7; -99]);
cellstrVar = {'one'; 'three'; ''; 'NA'; 'nine'};
charVar = ['A'; 'C'; 'E'; ' '; 'I'];
A = table(dblVar,int8Var,cellstrVar,charVar)
A=5×4 table
    dblVar    int8Var    cellstrVar    charVar
    ______    _______    __________    _______
     NaN          1      {'one'   }       A   
       3          3      {'three' }       C   
     Inf          5      {0x0 char}       E   
       7          7      {'NA'    }           
       9        -99      {'nine'  }       I   

指定缺失值指示符。ismissing 返回一个数组,对于 A 中具有缺失值的每个元素,该数组中对应的逻辑值均为 1。

id = {'NA' '' -99 NaN Inf};
TF = ismissing(A,id)
TF = 5x4 logical array
   1   0   0   0
   0   0   0   0
   1   0   1   0
   0   0   1   1
   0   1   0   0

ismissing 将忽略字符数组中的尾随空白。因此,在将空字符向量 '' 指定为缺失值指示符后,ismissing 会将 A.cellstrVar 中的空字符向量以及 A.charVar 中的空白均识别为缺失值。

参数说明

A-输入数据,指定为向量、矩阵、多维数组、字符向量元胞数组、表或时间表。

  • 如果 A 是时间表,则 ismissing 仅作用于表数据,而忽略行时间向量中的 NaT 和 NaN 值。
  • 如果 A 是元胞数组或包含元胞数组变量的表,则 ismissing 仅在元胞数组包含字符向量时检测缺失元素。

indicator-缺失值指示符,指定为标量、向量或元胞数组。

  • 如果 A 为数组,则 indicator 必须为向量。
  • 如果 A 为表或时间表,则 indicator 也可以是具有多个数据类型条目的元胞数组。

indicator 的条目指示 ismissing 视为缺失并覆盖所有默认标准缺失指示符的值。如果您要添加指示符,同时保留标准指示符列表,则必须包含所有默认指示符作为 indicator 的元素。例如,如果 A 是包含 categorical 和数值的表,请使用 ismissing(A,{-99,'<undefined>'}) 指示 -99 为缺失的数值,但保留 <undefined> 为缺失的 categorical 值。

也可以使用 missing 值作为表示为 NaN、NaT、missing 或 <undefined> 的任何缺失数据的指示符。如果 A 是一个表,则 missing 也是缺失字符向量元胞数组 ({''}) 的指示符。

指示符的数据类型与  A  中条目的数据类型相匹配。下面列出了指示符与  A  的元素之间的其他数据类型匹配:

  • double 指示符匹配 A 中的 double、single、整数和 logical 条目。
  • string 和 char 指示符以及字符向量元胞数组形式的指示符匹配 A 中的 string 条目。
  • string 和 char 指示符匹配 A 中的 categorical 条目。

示例: TF = ismissing(A,0) 仅将 0 识别为缺失值。

format-输出数据类型,指定为下列值之一:

  • 'logical' - 对于表或时间表输入数据,以逻辑数组形式返回输出 TF。
  • 'tabular' - 对于表输入数据,以表形式返回输出 TF。对于时间表输入数据,以时间表形式返回输出 TF。

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

示例:ismissing(T,'OutputFormat','tabular')

提示

  • 由于整数变量无法存储 NaN,请使用特殊整数值(或者未使用过的整数值)来指示缺失的整数数据,例如 -99。
  • 有关查找缺失字符串的详细信息,可以参考测试空字符串和缺失值。
  • 对于结构体数组或由非字符向量组成的元胞数组形式的输入数据,ismissing 返回 false。要查找结构体数组中的缺失值,请使用 structfun 函数将 ismissing 应用于结构体中的每个字段。要查找由非字符向量组成的元胞数组中的缺失值,请使用 cellfun 函数将 ismissing 应用于元胞数组中的每个元胞。

算法

对于字符向量元胞数组、字符数组或分类数组形式的指示符,ismissing 以不同的方式处理前导和尾随空白。

  • 对于字符向量元胞数组,ismissing 不会忽略指示符空白。所有字符向量必须完全匹配。
  • 对于表变量中的字符数组,ismissing 会忽略指示符中的尾随空白。
  • 对于分类数组,ismissing 会忽略指示符中的前导和尾随空白。

到此这篇关于MATLAB中ismissing函数用法小结的文章就介绍到这了,更多相关MATLAB ismissing函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • echarts X轴显示不全的处理方法(显示完全以及换行)

    echarts X轴显示不全的处理方法(显示完全以及换行)

    我们在echarts表中经常会出现X轴的信息显示不完全的情况,所以本文小编给大家介绍了echarts X轴显示不全的处理方法,文中通过代码示例给大家介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-01-01
  • 原生js实现计算购物车总金额的示例

    原生js实现计算购物车总金额的示例

    本文主要介绍了原生js实现计算购物车总金额的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Javascript中window.name属性详解

    Javascript中window.name属性详解

    这篇文章主要介绍了Javascript中window.name属性详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • JavaScript实现的鼠标跟随特效示例【2则实例】

    JavaScript实现的鼠标跟随特效示例【2则实例】

    这篇文章主要介绍了JavaScript实现的鼠标跟随特效,结合2则实例形式分析了javascript针对鼠标事件的响应、计算、处理及页面元素动态操作相关实现技巧,需要的朋友可以参考下
    2018-12-12
  • JavaScript创建对象的四种常用模式实例分析

    JavaScript创建对象的四种常用模式实例分析

    这篇文章主要介绍了JavaScript创建对象的四种常用模式,结合实例形式分析了javascript使用工厂模式、构造函数模式、原型模式及动态原型模式创建对象的相关操作技巧与注意事项,需要的朋友可以参考下
    2019-01-01
  • 详解微信小程序中组件通讯

    详解微信小程序中组件通讯

    在本篇文章里我们给大家分享了微信小程序中组件通讯的相关知识点以及相关实例代码,有兴趣的朋友们学习分享下。
    2018-10-10
  • JavaScript字符和ASCII实现互相转换

    JavaScript字符和ASCII实现互相转换

    这篇文章主要介绍了JavaScript字符和ASCII实现互相转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Javascript图像处理—阈值函数实例应用

    Javascript图像处理—阈值函数实例应用

    阈值是最简单的图像分割方法,接下来将介绍五种阈值类型感兴趣的朋友可以参考下
    2013-01-01
  • uniapp开发App出现网络异常的解决方法

    uniapp开发App出现网络异常的解决方法

    这篇文章主要给大家介绍了uniapp开发App出现网络异常的解决方案,文中有相关的解决方法和步骤,具有一定的参考价值,需要的朋友可以参考下
    2023-09-09
  • js或css实现滚动广告的几种方案

    js或css实现滚动广告的几种方案

    今天无事逛网,突然发现了一个很有趣的事情,(也许只有我觉得有趣).我看到一图片竟然在我拖动滚动条的时候没有动,也许你会说我少见多怪,不信你去找个这样的我看看,很少有的,一般的都是一拖动图片就在那跳得厉害。
    2010-01-01

最新评论