Octave 以倍频程保存数据

Octave 以倍频程保存数据,octave,Octave,在八度音阶中,我有x=-13:0.1:13 然后,我保存为: save file.dat x 当我打开file.dat时,我得到: -13 -12.9 -12.8 -12.7 -12.6 -12.5 -12.4 -12.3 -12.2 -12.1 -12 -11.9 -11.8 -11.7 -11.6 -11.5 -11.4 -11.3 -11.2 -11.1 -11 -10.9 -10.8 -10.7 -10.6 -10.5 -10.4

在八度音阶中,我有
x=-13:0.1:13

然后,我保存为:
save file.dat x

当我打开file.dat时,我得到:

 -13
 -12.9
 -12.8
 -12.7
 -12.6
 -12.5
 -12.4
 -12.3
 -12.2
 -12.1
 -12
 -11.9
 -11.8
 -11.7
 -11.6
 -11.5
 -11.4
 -11.3
 -11.2
 -11.1
 -11
 -10.9
 -10.8
 -10.7
 -10.6
 -10.5
 -10.4
 -10.3
 -10.2
 -10.1
 -10
 -9.9
 -9.800000000000001
 -9.699999999999999
 -9.6
 -9.5
 -9.4
 -9.300000000000001
 -9.199999999999999
 -9.1
 -9
 -8.899999999999999
 -8.800000000000001
 -8.699999999999999
...

但是我想保存
-8.7
,而不是
-8.69999999999999
-8.8
而非
-8.8000000000001
..

在不知道写入文件所使用的函数的情况下,解决此问题的一种方法是使用单位数精度指定格式

例如:

fprintf(fid, "%4.1f", x(i));

将x(i)写入fid,小数点后为1位。

您只需传递一个向量,在这种情况下,它将对所有条目重复模板,例如,只需执行
printf(“%4.1f\n”,0:.1:3)
非常感谢Alex B和carandraug。非常有用!