欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MATLAB中fillmissing函數(shù)用法小結

 更新時間:2023年09月08日 09:12:18   作者:jk_101  
這篇文章主要介紹了MATLAB中fillmissing函數(shù)用法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

fillmissing函數(shù)的功能是填充缺失的條目。

語法

F = fillmissing(A,'constant',v)
F = fillmissing(A,method)
F = fillmissing(A,movmethod,window)
F = fillmissing(A,'knn')
F = fillmissing(A,'knn',k)
F = fillmissing(A,fillfun,gapwindow)
F = fillmissing(___,dim)
F = fillmissing(___,Name,Value)
[F,TF] = fillmissing(___)

說明

        ?F = fillmissing(A,'constant',v) 使用常量值 v 填充缺失的數(shù)組或表條目。如果 A 是矩陣或多維數(shù)組,則 v 可以是標量或向量。如果 v 是向量,則每個元素指定 A 的對應列中的填充值。如果 A 是表或時間表,則 v 也可以是元胞數(shù)組,其元素包含每個表變量的填充值。

缺失值的定義取決于  A  的數(shù)據(jù)類型:

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

如果  A  是表,則每個變量的數(shù)據(jù)類型定義該變量的缺失值。

        ?F = fillmissing(A,method) 使用 method 指定的方法填充缺失的條目。例如,fillmissing(A,'previous') 對 A 中的缺失條目使用上一個非缺失條目進行填充。

        ?F = fillmissing(A,movmethod,window) 使用窗長度為 window 的移動窗均值或中位數(shù)填充缺失條目。例如,fillmissing(A,'movmean',5) 使用窗長度為 5 的移動均值填充缺失數(shù)據(jù)。

        F = fillmissing(A,'knn') 用最近鄰行中的對應值填充缺失條目,這些值是根據(jù)行之間的成對歐幾里德距離計算的。

        F = fillmissing(A,'knn',k) 用 k 最近鄰行中對應值的均值填充缺失條目,該均值是根據(jù)行之間的成對歐幾里德距離計算的。例如,fillmissing(A,'knn',5) 用五個最近鄰行中對應值的均值填充 A 中的缺失條目。

        F = fillmissing(A,fillfun,gapwindow) 使用由函數(shù)句柄 fillfun 指定的自定義方法填充缺失條目的空缺,并在每個空缺周圍設置固定窗,從該窗計算填充值。fillfun 必須具有輸入?yún)?shù) xs、ts 和 tq,它們是向量,分別包含長度為 gapwindow 的采樣數(shù)據(jù) xs、長度為 gapwindow 的采樣數(shù)據(jù)位置 ts 和缺失數(shù)據(jù)位置 tq。ts 和 tq 中的位置是采樣點向量的子集。

        F = fillmissing(___,dim) 支持上述語法中的任何輸入?yún)?shù)組合,且可指定 A 中要進行運算的維度。默認情況下,fillmissing 沿其大小不為 1 的第一個維度進行運算。例如,如果 A 是矩陣,則 fillmissing(A,2) 跨 A 的各列進行運算,逐行填充缺失的數(shù)據(jù)。

        F = fillmissing(___,Name,Value) 使用一個或多個名稱-值參數(shù)指定用于填充缺失值的其他參數(shù)。例如,如果 t 是時間值向量,則 fillmissing(A,'linear','SamplePoints',t) 會基于 t 中的時間值對 A 中的數(shù)據(jù)進行插值。

        ?[F,TF] = fillmissing(___) 還返回邏輯數(shù)組 TF,該數(shù)組指示 F 中先前缺失現(xiàn)已填充的條目的位置。

示例

包含  NaN  值的向量

        創(chuàng)建包含 NaN 值的向量,并使用前一個非缺失值替換每個 NaN。

A = [1 3 NaN 4 NaN NaN 5];
F = fillmissing(A,'previous')
F = 1×7
     1     3     3     4     4     4     5

由  NaN  值組成的矩陣

        創(chuàng)建一個 2×2 矩陣,每列有一個 NaN 值。在第一列中用 100 填充 NaN,在第二列中用 1000 填充。

A = [1 NaN; NaN 2]
A = 2×2
     1   NaN
   NaN     2
F = fillmissing(A,'constant',[100 1000])
F = 2×2
           1        1000
         100           2

插入缺失數(shù)據(jù)

        使用插值來替換非均勻采樣的數(shù)據(jù)中的 NaN 值。定義非均勻采樣點向量,并計算這些點上的正弦函數(shù)。

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

將 NaN 值插入 A 中。

A(A < 0.75 & A > 0.5) = NaN;

        使用線性插值填充缺失數(shù)據(jù),并返回填充的向量 F 和邏輯向量 TF。TF 項中的值 1 (true) 對應于 F 中的填充值。

[F,TF] = fillmissing(A,'linear','SamplePoints',x);

繪制原始數(shù)據(jù)和填充的數(shù)據(jù)。

scatter(x,A)
hold on
scatter(x(TF),F(TF))
legend('Original Data','Filled Data')

如圖所示:

使用移動中位數(shù)方法

        使用移動中位數(shù)填充缺失的數(shù)值數(shù)據(jù)。創(chuàng)建樣本點向量 x 和包含缺失值的數(shù)據(jù)向量 A。

x = linspace(0,10,200); 
A = sin(x) + 0.5*(rand(size(x))-0.5); 
A([1:10 randi([1 length(x)],1,50)]) = NaN; 

        使用窗長度為 10 的移動中位數(shù)替換 A 中的 NaN 值,并繪制原始數(shù)據(jù)和填充的數(shù)據(jù)。

F = fillmissing(A,'movmedian',10);  
plot(x,F,'.-') 
hold on
plot(x,A,'.-')
legend('Original Data','Filled Data')

如圖所示:

使用自定義填充方法

        定義一個自定義函數(shù),用上一個非缺失值填充 NaN 值。定義采樣點向量 t 和包含 NaN 值的對應數(shù)據(jù)向量 A。繪制數(shù)據(jù)圖。

t = 10:10:100;
A = [0.1 0.2 0.3 NaN NaN 0.6 0.7 NaN 0.9 1];
scatter(t,A)

如圖所示:

        使用局部函數(shù) forwardfill(在示例末尾定義)用上一個非缺失值填充缺失空缺。函數(shù)句柄輸入包括:

  • xs - 用于填充的數(shù)據(jù)值
  • ts - 用于填充的值相對于采樣點的位置
  • tq - 缺失值相對于采樣點的位置
  • n - 要填充的空缺中的值的數(shù)目
n = 2;
gapwindow = [10 0];
[F,TF] = fillmissing(A,@(xs,ts,tq) forwardfill(xs,ts,tq,n),gapwindow,'SamplePoints',t);

        空缺窗值 [10 0] 指示 fillmissing 考慮缺失值空缺之前的一個數(shù)據(jù)點,不考慮空缺之后的任何數(shù)據(jù)點,因為上一個非缺失值位于空缺之前 10 個單位。對于第一個空缺,由 fillmissing 確定的函數(shù)句柄輸入值為:

  • xs = 0.3
  • ts = 30
  • tq = [40 50]

第二個空缺的函數(shù)句柄輸入值為:

  • xs = 0.7
  • ts = 70
  • tq = 80

繪制原始數(shù)據(jù)和填充的數(shù)據(jù)。

scatter(t,A)
hold on
scatter(t(TF),F(TF))

如圖所示:

function y = forwardfill(xs,ts,tq,n)
% Fill n values in the missing gap using the previous nonmissing value
y = NaN(1,numel(tq));
y(1:min(numel(tq),n)) = xs;
end

包含缺失端點的矩陣

        創(chuàng)建包含缺失條目的矩陣并使用線性插值填充各列(第二個維度),一次一行。對于每行,使用該行中距離最近的非缺失值填充前導和尾隨缺失值。

A = [NaN 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]
A = 3×10
   NaN   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,'linear',2,'EndValues','nearest')
F = 3×10
     5     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

包含多個數(shù)據(jù)類型的表

        使用不同數(shù)據(jù)類型填充表變量的缺失值。創(chuàng)建表,其變量包括 categorical、double 和 char 數(shù)據(jù)類型。

A = table(categorical({'Sunny'; 'Cloudy'; ''}),[66; NaN; 54],{''; 'N'; 'Y'},[37; 39; NaN],...
    'VariableNames',{'Description' 'Temperature' 'Rain' 'Humidity'})
A=3×4 table
    Description    Temperature       Rain       Humidity
    ___________    ___________    __________    ________
    Sunny               66        {0x0 char}       37   
    Cloudy             NaN        {'N'     }       39   
    <undefined>         54        {'Y'     }      NaN   

        用上一個條目的值替換所有缺失的條目。由于 Rain 變量中不存在前一個元素,缺失的字符向量將不會被替換。

F = fillmissing(A,'previous')
F=3×4 table
    Description    Temperature       Rain       Humidity
    ___________    ___________    __________    ________
      Sunny            66         {0x0 char}       37   
      Cloudy           66         {'N'     }       39   
      Cloudy           54         {'Y'     }       39   

        將 A 中 Temperature 和 Humidity 變量的 NaN 值替換為 0。

F = fillmissing(A,'constant',0,'DataVariables',{'Temperature','Humidity'})
F=3×4 table
    Description    Temperature       Rain       Humidity
    ___________    ___________    __________    ________
    Sunny              66         {0x0 char}       37   
    Cloudy              0         {'N'     }       39   
    <undefined>        54         {'Y'     }        0   

參數(shù)說明:

A-輸入數(shù)據(jù),指定為向量、矩陣、多維數(shù)組、字符向量元胞數(shù)組、表或時間表。

  • 如果 A 為時間表,則僅填充表值。如果關聯(lián)的行時間向量包含 NaT 或 NaN 值,則 fillmissing 會產(chǎn)生錯誤。行時間必須是唯一的并按升序列出。
  • 如果 A 是元胞數(shù)組或包含元胞數(shù)組變量的表,則 fillmissing 僅在元胞數(shù)組包含字符向量時填充缺失元素。

v-填充常量,指定為標量、向量或元胞數(shù)組。

  • 如果 A 是矩陣或多維數(shù)組,則 v 可以是向量,表示每個運算維度的一個不同填充值。v 的長度必須與運算維度的長度相匹配。
  • 如果 A 是表或時間表,則 v 可以是填充值的元胞數(shù)組,表示每個變量的一個不同填充值。元胞數(shù)組中的元素數(shù)必須與表中的變量數(shù)目相匹配。

method-填充方法,指定為下列值之一:

方法描述
'previous'上一個非缺失值
'next'下一個非缺失值
'nearest'距離最近的非缺失值
'linear'相鄰非缺失值的線性插值(僅限數(shù)值、duration 和 datetime 數(shù)據(jù)類型)
'spline'分段三次樣條插值(僅限數(shù)值、duration 和 datetime 數(shù)據(jù)類型)
'pchip'保形分段三次樣條插值(僅限數(shù)值、duration 和 datetime 數(shù)據(jù)類型)
'makima'修正 Akima 三次 Hermite 插值(僅限數(shù)值、duration 和 datetime 數(shù)據(jù)類型)

movmethod  — 移窗法

填充缺失數(shù)據(jù)的移動方法,指定為下列值之一:

方法描述
'movmean'窗長度為 window 的移動均值(僅限數(shù)值數(shù)據(jù)類型)
'movmedian'窗長度為 window 的移動中位數(shù)(僅限數(shù)值數(shù)據(jù)類型)

window  — 窗長度        

移動方法的窗長度,指定為正整數(shù)標量、由正整數(shù)組成的二元素向量、正持續(xù)時間標量或由正持續(xù)時間組成的二元素向量。窗是相對于采樣點定義的。

        如果 window 是正整數(shù)標量,則窗以當前元素為中心并且包含 window-1 個相鄰元素。如果 window 是偶數(shù),則窗口以當前元素和上一個元素為中心。

        如果 window 是由正整數(shù)組成的二元素向量 [b f],則窗口包含當前元素、其之前的 b 個元素和之后的 f 個元素。

        如果 A 是時間表或 SamplePoints 指定為 datetime 或 duration 向量,則窗口必須為 duration 類型。

k  — 最近鄰的數(shù)量,用 'knn' 方法計算平均值的最近鄰的數(shù)量,指定為正整數(shù)標量。

到此這篇關于MATLAB中fillmissing函數(shù)用法的文章就介紹到這了,更多相關MATLAB中fillmissing函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JavaScript之Map和Set_動力節(jié)點Java學院整理

    JavaScript之Map和Set_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了JavaScript之Map和Set的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • js實現(xiàn)html table 行,列鎖定的簡單實例

    js實現(xiàn)html table 行,列鎖定的簡單實例

    下面小編就為大家?guī)硪黄猨s實現(xiàn)html table 行,列鎖定的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • js實現(xiàn)登陸與注冊功能

    js實現(xiàn)登陸與注冊功能

    這篇文章主要為大家詳細介紹了js實現(xiàn)登陸與注冊功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • location.hash保存頁面狀態(tài)的技巧

    location.hash保存頁面狀態(tài)的技巧

    hash 屬性是一個可讀可寫的字符串,該字符串是 URL 的錨部分(從 # 號開始的部分)。接下來通過本文給大家介紹location.hash保存頁面狀態(tài)的相關內(nèi)容,感興趣的朋友一起學習吧
    2016-04-04
  • JS實現(xiàn)光滑展開合攏的菜單效果代碼

    JS實現(xiàn)光滑展開合攏的菜單效果代碼

    這篇文章主要介紹了JS實現(xiàn)光滑展開合攏的菜單效果代碼,涉及JavaScript響應鼠標事件遍歷并改變頁面元素屬性的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • 使用layui實現(xiàn)的左側菜單欄以及動態(tài)操作tab項方法

    使用layui實現(xiàn)的左側菜單欄以及動態(tài)操作tab項方法

    今天小編就為大家分享一篇使用layui實現(xiàn)的左側菜單欄以及動態(tài)操作tab項方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 不錯的Javascript表格翻頁效果

    不錯的Javascript表格翻頁效果

    不錯的Javascript表格翻頁效果...
    2007-08-08
  • 前端實現(xiàn)界面切換主題代碼示例

    前端實現(xiàn)界面切換主題代碼示例

    這篇文章主要介紹了前端實現(xiàn)界面切換主題的相關資料,文中介紹了兩種方法,通過link標簽的rel屬性和通過變量設置,前者適用于確定的主題樣式切換,后者則適用于在拾色器中任意選擇顏色更換主題的情況,需要的朋友可以參考下
    2025-02-02
  • 老生常談JavaScript 數(shù)組方法

    老生常談JavaScript 數(shù)組方法

    本文詳細介紹了JavaScript數(shù)組方法的分類和具體用法,涵蓋了數(shù)組的添加/刪除、查找/訪問、遍歷、排序/反轉、轉換以及一些其他實用方法,每種方法都提供了簡要的解釋和示例代碼,幫助讀者更好地理解和應用這些方法,感興趣的朋友一起看看吧
    2025-03-03
  • js判斷某個方法是否存在實例代碼

    js判斷某個方法是否存在實例代碼

    這篇文章主要介紹了js判斷某個方法是否存在的實例代碼,可用于檢測js中的方法是否可用,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01

最新評論