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值的全部内容。