3

私はポイントとポイント間のベクトルを使っていくつかの計算を行っていますが、ポイントが非常に接近しているときにnanを取得するのは当然のことです。私が今やろうとしているのは、適切なデータとともに配列に格納した配列内のすべてのnan値を削除することです。私は次のようなコードを少しだけ使用したいと思っています。

   if( angle[i] == nan ) { angle[i] = 0.0 };

少なくともそれは私が試したことであり、それを試みるとエラーが発生します。nan値を取り除き、0.0に置き換える方法を知っている人はいますか?

4

2 に答える 2

7

これがCであると仮定すると、次のisnanを使用し<math.h>ます。

#include <math.h>

if (isnan(angle[i]))
{
    angle[i] = 0.0;
}
于 2012-07-19T21:18:32.533 に答える
5

私が覚えていることから、すべての言語で、NaNはそれ自体を含むすべてのものとfalseを比較します。この動作を使用して、それを取り除くことができます。

if( angle[i] != angle[i] ) { angle[i] = 0.0 };

これは、C、C ++、またはJavaのように見えます。これらすべてにおいて、このトリックは機能するはずです。

于 2012-07-19T21:12:10.290 に答える