我读在时间序列数据的csv文件成C ++程序。但是我的数据包含 一些楠的。例如:

1-Jul-2010,   1.0 
2-Jul-2010,   2.0
3-Jul-2010,   NaN
4-Jul-2010,   3.0

要解决这个问题,我写在Matlab短的脚本,替换所有NaN的0.0 - 后来我在没有NaN的新文件中读取。有没有一种简单的方法或避免 这种预处理?

谢谢!

有帮助吗?

解决方案

由于大卫鉴于已经提到的,你不必预先处理档案。 strtof()和关于strtod()都能够将NaN的字符串转换为NaN的浮动/双值。

如果您想更换您的数据集0.0的值,你可以这样做使用isnan()函数。

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

其他提示

你想要的结果是一个浮子(或双击)的NaN - 然后使用STDLIB的strtod()函数

如果你想以自己的方式来处理它(将其设置为0等),然后读取每一行成一个字符串第一,使用strcmp检查NaN(),然后解析字符串,这取决于你发现了什么 - 更容易,如果为NaN只能出现在一个列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top