【发布时间】:2010-12-15 09:13:20
【问题描述】:
MATLAB 中是否有一个命令可以让我找到数组中的所有 NaN(非数字)元素?
【问题讨论】:
MATLAB 中是否有一个命令可以让我找到数组中的所有 NaN(非数字)元素?
【问题讨论】:
我刚刚找到了答案:
k=find(isnan(yourarray))
k 将是 NaN 元素索引的列表。
【讨论】:
虽然 isnan 是正确的解决方案,但我只是指出找到它的方法。使用查找。如果您不知道 MATLAB 中的函数名称,请尝试查找。
lookfor nan
将很快为您提供一些使用 NaN 的函数的名称,并为您提供它们帮助块的第一行。在这里,它会列出(除其他外)
对于非数字,ISNAN 为真。
这显然是您要使用的功能。
【讨论】:
如前所述,最好的答案是 isnan()(尽管对于 woodchips 的元答案 +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”,可以用来index into a.
【讨论】: