11

MATLAB 中是否有一个命令可以让我找到数组中的所有NaN(非数字)元素?

4

3 回答 3

24

如前所述,最好的答案是 isnan() (尽管对于木片的元答案 +1)。有关如何将其与逻辑索引一起使用的更完整示例:

>> a = [1 nan;nan 2]

a =

  1   NaN
NaN     2

>> %replace nan's with 0's
>> a(isnan(a))=0

a =

 1     0
 0     2

isnan(a) 返回一个逻辑数组,一个与 a 大小相同的 true & false 数组,每个有 nan 的地方都带有“true”,可用于对a 进行索引。

于 2009-11-11T13:43:36.473 回答
23

虽然 isnan 是正确的解决方案,但我只会指出找到它的方法。使用查找。如果您不知道 MATLAB 中的函数名称,请尝试查找。

lookfor nan

将很快为您提供一些使用 NaN 的函数的名称,并为您提供其帮助块的第一行。在这里,它会列出(除其他外)

ISNAN 非数字为真。

这显然是您要使用的功能。

于 2009-11-11T11:38:10.243 回答
10

我刚刚找到了答案:

k=find(isnan(yourarray))

k 将是 NaN 元素索引的列表。

于 2009-11-11T08:04:43.790 回答