質問

私はC ++プログラムに時系列データのcsvファイルで読んでいます。私のデータは、しかし含まれてい いくつかのNaNさん。たとえばます:

1-Jul-2010,   1.0 
2-Jul-2010,   2.0
3-Jul-2010,   NaN
4-Jul-2010,   3.0
この私がすべてのNaNの0.0とを置き換えMATLABで短いスクリプトを書いたに対処するために

- 私は、その後のNaNのせずに、新しいファイルを読み込みます。簡単な方法または回避はあります この前処理?

ありがとうございます。

役に立ちましたか?

解決

としてダビデはすでに述べ考えると、あなたはすべてのファイルを事前処理する必要はありません。 strtof()とは、strtod()の両方のNaNフロート/ダブル値のNaN文字列を変換することができる。

あなたのデータセットで0.0で値を置き換えたい場合は、あなたがそうすることができISNAN()関数を使用します。

if (isnan(val))
{
    val = 0.0;
}

他のヒント

NaNを使用すると、結果がfloat(またはdouble)になりたいですか - 。そしてSTDLIBのは、strtod()関数を使用します。

あなたがあなた自身の方法(0などに設定して)でそれに対処したい場合は、最初の文字列に各行を読んで、strcmpのとNaNをチェック()、あなたが見つけるものに応じて文字列を解析 - 簡単にNaNの場合1列のみに表示されることがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top