如何使用 MATLAB 從矩陣中移除 NaN 值


在 MATLAB 中,要移除矩陣中的 NaN 值,以下兩個函式被廣泛使用。

  • remmissing ()

  • isnan ()

現在讓我們透過示例程式來了解如何使用這兩個函式在 MATLAB 中移除矩陣中的 NaN 值。

使用 isnan () 函式移除 NaN 值

在 MATLAB 中,我們可以使用“isnan()”函式查詢矩陣中的 NaN 值,然後使用邏輯索引將其移除。

“isnan ()”函式對於 NaN 元素返回 TRUE(邏輯 1),對於非 NaN 元素返回 FALSE(邏輯 0)。

isnan () 的語法

MATLAB 中的“isnan ()”函式採用以下語法:

isnan (A)

其中,“A”是元素矩陣。“isnan ()”函式接受一個引數並返回一個邏輯值矩陣。

示例 1

為了更好地理解 MATLAB 中“isnan ()”函式,讓我們考慮以下示例:

% MATLAB program to remove NaN values using isnan() function

% Creating a matrix with NaN values
X = [1, NaN, 2, 3, 4, NaN, NaN, 5, 6];

% Calling isnan() function to find the indices of the NaN values
Y = isnan(X)

% using logical indexing to getting a new matrix without NaN values
Z = X (~Y)

輸出

執行後,它將產生以下**輸出**:

Y =

  0  1  0  0  0  1  1  0  0

Z =

   1   2   3   4   5   6

解釋

在這個 MATLAB 程式中,“isnan ()”函式用於建立一個邏輯矩陣“Y”,其維度與原始矩陣“X”相同。在矩陣“Y”中,如果矩陣“X”中對應的元素為 NaN,則每個元素為 TRUE(邏輯 1),否則為 FALSE(邏輯 0)。

邏輯索引 X(~Y) 返回一個矩陣 Z,其中包含矩陣 X 的所有非 NaN 元素。

使用 remmissing () 函式移除 NaN 值

MATLAB 中還有一個函式“remmissing”,可用於從矩陣中移除 NaN 值。此函式首次在 MATLAB R2016b 版本中引入。此函式的最大優點是它提供了一種更簡單的方法來移除 MATLAB 中矩陣中的 NaN 值。

語法

**remmissing ()** 函式採用以下語法:

X=[1,NaN,2]
Y=remmissing(X)

示例 2

考慮以下示例以瞭解**remmissing** 函式的工作原理。

% MATLAB program to remove NaN values using remmissing function

% Creating a matrix in NaN values
X = [1, NaN, 2, 3, 4, NaN, NaN, 5, 6];

% Calling remmissing() over the matrix A to remove NaN values
Y = remmissing(X)

輸出

它將產生以下**輸出**:

Y = 1  2  3  4  5  6

結論

這就是關於如何使用 MATLAB 從矩陣中移除 NaN 值的所有內容。

更新於: 2023-07-26

6K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.