MATLAB 如何从矩阵中删除NaN值

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()”函数来创建一个与原始矩阵”X”尺寸相同的逻辑矩阵”Y”。在矩阵”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值的全部内容。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程