linspace()没有在Julia中给出任何正确的结果

时间:2016-01-15 16:47:14

标签: julia

我想在Julia中创建一个0到1之间的10个元素的线性间隔数组。我尝试了linspace命令。

    julia> linspace(0.0,1.0,10)

这是我得到的输出。

    linspace(0.0,1.0,10)

我以为我应该得到一个数组作为输出。我无法弄清楚我做错了什么。 我从命令行使用Julia v0.4.3。我从Juno IDE尝试了同样的东西,它在那里工作得很好。

1 个答案:

答案 0 :(得分:3)

实际上,这是一个类似数组的对象!它只是显示自己有点奇怪,因为它会在您要求时即时生成其值。这类似于范围,其中1:1000000只会向您发送1:1000000,而无需分配和计算所有百万元素。

julia> v = linspace(0,1,10)
linspace(0.0,1.0,10)

julia> for elt in v
           println(elt)
       end
0.0
0.1111111111111111
0.2222222222222222
0.3333333333333333
0.4444444444444444
0.5555555555555556
0.6666666666666666
0.7777777777777778
0.8888888888888888
1.0

julia> v[3]
0.2222222222222222

linspace对象的显示在开发版本0.5中发生了变化,因为其他人也有同样的反应。它现在显示了它将生成的元素的预览:

julia-0.5> linspace(0,1,10)
10-element LinSpace{Float64}:
 0.0,0.111111,0.222222,0.333333,0.444444,0.555556,0.666667,0.777778,0.888889,1.0

julia-0.5> linspace(0,1,101)
101-element LinSpace{Float64}:
 0.0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,…,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,1.0