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