Matlab 查找数组中的所有NaN元素

Matlab 查找数组中的所有NaN元素,matlab,nan,Matlab,Nan,MATLAB中是否有一个命令允许我查找数组中的所有NaN(非数字)元素?我刚刚找到了答案: k=find(isnan(yourarray)) k将是NaN元素标记的列表。虽然isnan是正确的解决方案,但我将指出找到它的方法。使用lookfor。如果您不知道MATLAB中函数的名称,请尝试查找 lookfor nan 将快速为您提供一些与NAN一起工作的函数的名称,并提供它们的帮助块的第一行。在这里,它会列出(除其他外) 对于非数字,ISNAN为真 这显然是您想要使用的函数。如前所述,最好的

MATLAB中是否有一个命令允许我查找数组中的所有NaN(非数字)元素?

我刚刚找到了答案:

k=find(isnan(yourarray))

k将是NaN元素标记的列表。

虽然isnan是正确的解决方案,但我将指出找到它的方法。使用lookfor。如果您不知道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”来

,在Matlab中,您通常不需要对逻辑数组调用find(),因为对于大多数后续操作,可以直接使用逻辑数组而不是索引,例如,请参见,有时您只需要逻辑阵列,有时您需要索引。我同意不做不必要的手术,但是OP没有明确说明他想要什么。这个答案是正确的。我接受了你的答案,因为你告诉我如何用0值替换NaN,这对我来说是非常宝贵的。