我正在使用点和它们之间的向量进行一些计算,当点非常接近时,得到nan值对我来说并不奇怪。现在我想做的是清除存储在数组中的所有nan值以及好的数据。我希望可以只使用下面这段代码:
if( angle[i] == nan ) { angle[i] = 0.0 };
至少这是我尝试过的,但当我尝试时遇到了错误。有人知道如何摆脱NaN值并用0.0替换它们吗?
我正在使用点和它们之间的向量进行一些计算,当点非常接近时,得到nan值对我来说并不奇怪。现在我想做的是清除存储在数组中的所有nan值以及好的数据。我希望可以只使用下面这段代码:
if( angle[i] == nan ) { angle[i] = 0.0 };
至少这是我尝试过的,但当我尝试时遇到了错误。有人知道如何摆脱NaN值并用0.0替换它们吗?
x!=x
通常比isnan(x)
更快地检查nan。后者仅在避免引发浮点异常标志方面有用,但如果您不关心/不使用浮点异常标志,则x!=x
更好。 - R.. GitHub STOP HELPING ICE据我所记,无论是哪种语言,NaN都会与任何值(包括其本身)进行比较时返回false。您可以利用这种行为来排除它:
if( angle[i] != angle[i] ) { angle[i] = 0.0 };