如何使用 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.