如何让linspace适用于小数字?

时间:2016-03-09 13:26:50

标签: matlab

我试图在Matlab中使用linspace来获取小数字,例如从0.00003到0.1。

但是,如果我这样做,第一个数字/ bin不是0.00003,而是0,这不会给我一个平等的分布:

  
    

linspace(0.00003,0.1,10)

  

ans =

0.0000    0.0111    0.0222    0.0334    0.0445    0.0556    0.0667    0.0778    0.0889    0.1000

我意识到,如果我从0.0003或更大开始,那么它可以工作,但我怎样才能让它适用于较小的数字呢?

1 个答案:

答案 0 :(得分:3)

这纯粹是由于MATLAB command window is displaying your data

的方式

显示数字的默认方式是文档所述的short format

  

短小数,小数点后4位数的固定小数格式

您的第一个数据点在小数点后的第5位数字之前没有非零数字,因此它只显示为0.0000

尝试将display format更改为显示更多有效数字的内容。您可以使用format执行此操作。

format long g

此外,将来,如果您确实想要检查某些内容是否符合您的预期,请执行显式按值检查,而不仅仅是通过信任命令窗口中显示的内容。

limit = 0.000003
data = linsapce(limit, 0.1, 10);

% Check that the first datapoint is "equal" to what you expect
assert(abs(data(1) - limit) < eps)