当我使用Matlab从Bloomberg提取数据时,如何设置小数位?

时间:2013-09-03 15:37:42

标签: excel matlab bloomberg

我使用Matlab历史记录功能从Bloomberg检索数据,似乎Matlab将4个小数位设置为默认值。这有时与我从Excel中提取的数据不一致。例如:

这是Matlab代码:

[d, sec] = history(c, 'TY1 Comdty', 'PX_LAST', '1982-5-6', '1982-5-6')

我从Matlab和Excel得到了不同的结果:

Date    5/6/1982
Excel   72.96875
Matlab  72.9688

有没有办法设置历史记录功能的属性并得到72.96875而不是72.9688?

2 个答案:

答案 0 :(得分:2)

没有像Excel那样的解决方案来显示所需格式的数字。

在Matlab中,您可以将format long设置为包含15个小数位,将format short设置为包含4位小数。这就是你所拥有的一切。

尽管如此,还有两个解决方法。第一个使用round

(1) format long                    %define 15 digit precision
    xround = @(x,d) round(x/d)*d;  %rounding function with d format

    a = xround(72.96875, 0.00001)   %rounding your value by calling 'xround' function

它给出了

    a = 72.968750000000000

第二种解决方法是打印一个字符串(不是标量)

(2) sprintf('%.5f', 72.96875)

它给出了

    ans = 72.96875

要将Excel与Matlab匹配,您可以输入

[d, sec] = history(c, 'TY1 Comdty', 'PX_LAST', '1982-5-6', '1982-5-6');
d = xround(d, 0.00001);

答案 1 :(得分:1)

使用format命令将显示设置为所需的有效位数:http://www.mathworks.co.uk/help/matlab/ref/format.html