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 值
創(chuàng)建一個包含 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
包含多個數據類型的表
創(chuàng)建一個包含不同數據類型的變量的表。
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
指定表中的缺失值指示符
創(chuàng)建一個表,其中 '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函數內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaScript中for與forEach分別如何跳出循環(huán)
forEach的優(yōu)勢一個是它的回調函數形成了一個作用域,它的curItem和i不會像for循環(huán)一樣污染全局變量,這篇文章主要給大家介紹了關于JavaScript中for與forEach分別如何跳出循環(huán)的相關資料,需要的朋友可以參考下2024-01-01JavaScript?中?this?關鍵字的作用及改變其上下文的方法
這篇文章主要介紹了JavaScript?中?this?關鍵字的作用和如何改變其上下文,通過使用?call,?apply,?bind?方法,可以改變函數中的?this?指向,從而在不同的上下文中使用同一個函數,需要的朋友可以參考下2023-01-01javascript 對象 與 prototype 原型用法實例分析
這篇文章主要介紹了javascript 對象 與 prototype 原型用法,結合實例形式分析了javascript 對象 與 prototype 原型實現對象創(chuàng)建、繼承、拷貝等相關操作技巧,需要的朋友可以參考下2019-11-11