level 5
老滚安度因♬
楼主
程序语句是:
t = Table[temp[[12, 9]]*i, ##] & @@ {{i, 1, Length[rec]}}
这里的temp[[12,9]]是从文件里读取的一个时间间隔,因为不同的记录文件里的时间间隔可能不一样,所以需要用到这个变量。对于这个程序而言,应该是0.002。
在Mathematica里看到的数据就是正常的,从0开始0.002递增的一个数据。
但是输出到.dat格式的文件里,就会出现每过几个数据就冒出来一个不一样的,小数点后十几位会出现奇奇怪怪的数。

我推测可能跟精度有关,但是我还是想知道这种情况的背后原理是什么,总不能说为了避免这种情况,每导入一个数都手写转换到机器精度吧…毕竟MMA是一个很省心的软件。
2020年08月31日 12点08分
1
t = Table[temp[[12, 9]]*i, ##] & @@ {{i, 1, Length[rec]}}
这里的temp[[12,9]]是从文件里读取的一个时间间隔,因为不同的记录文件里的时间间隔可能不一样,所以需要用到这个变量。对于这个程序而言,应该是0.002。
在Mathematica里看到的数据就是正常的,从0开始0.002递增的一个数据。
但是输出到.dat格式的文件里,就会出现每过几个数据就冒出来一个不一样的,小数点后十几位会出现奇奇怪怪的数。

我推测可能跟精度有关,但是我还是想知道这种情况的背后原理是什么,总不能说为了避免这种情况,每导入一个数都手写转换到机器精度吧…毕竟MMA是一个很省心的软件。