在 MATLAB 中,`isnan` 函数用于检查数组中的元素是否为 NaN(Not a Number)。NaN 是一种表示未定义或不可表示数值的标记,通常在涉及除零或其他未定义操作时会出现。
语法
TF = isnan(A)
- `A`:输入的数组、矩阵、向量或标量。可以是数值类型、时间类型或复数类型等。
- `TF`:返回与 `A` 大小相同的逻辑数组(布尔值矩阵)。在 `TF` 中,如果 `A` 中对应的位置是 NaN,则该位置的值为 `1`(`true`),否则为 `0`(`false`)。
使用示例
1. 标量
x = NaN;
TF = isnan(x); % TF = 1 (true)
2. 数组
A = [1, NaN, 3; 4, 5, NaN];
TF = isnan(A);
% TF =
% 0 1 0
% 0 0 1
3. 与逻辑运算结合
如果你想查找数组中非 NaN 的元素,可以使用:
A = [1, NaN, 3; 4, 5, NaN];
B = A(~isnan(A)); % B = [1, 3, 4, 5]
4. 用于数据清洗
在数据清洗过程中,可以使用 `isnan` 过滤掉包含 NaN 的数据点:
A = [1, NaN, 3; 4, 5, NaN];
A(isnan(A)) = 0; % 将 A 中的 NaN 替换为 0
% A =
% 1 0 3
% 4 5 0
应用场景
- 在数据分析中,`isnan` 通常用于识别和处理缺失数据。
- 在数值计算中,使用 `isnan` 可以避免计算时因 NaN 导致的问题。