如何在julia中生成常规的非整数序列?

kmm*_*kmm 9 julia

如何在julia中生成常规的非整数序列?

我想要的 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

在MATLAB中,我会使用

0.1:0.1:1
Run Code Online (Sandbox Code Playgroud)

在R

seq(0.1, 1, by = 0.1)
Run Code Online (Sandbox Code Playgroud)

但是除了julia中的整数序列之外我找不到任何东西(例如1:10).在文档中搜索"序列"只能提供有关字符串序列的信息.

Nic*_*ico 14

类似于Matlab的,但不同之处在于0.1:0.1:1限定Range:

julia> typeof(0.1:0.1:1)
Range{Float64} (constructor with 3 methods)
Run Code Online (Sandbox Code Playgroud)

因此如果Array需要:

julia> [0.1:0.1:1]
10-element Array{Float64,1}:
 0.1
 0.2
 0.3
 0.4
 0.5
 0.6
 0.7
 0.8
 0.9
 1.0
Run Code Online (Sandbox Code Playgroud)

不幸的Range,在文档的这一点上仅简要提到这种用法.

编辑:正如@ivarne的评论中所提到的,使用linspace可以实现类似的结果:

julia> linspace(.1,1,10)
10-element Array{Float64,1}:
 0.1
 0.2
 0.3
 0.4
 0.5
 0.6
 0.7
 0.8
 0.9
 1.0
Run Code Online (Sandbox Code Playgroud)

但请注意,由于舍入差异,结果并不完全相同:

julia> linspace(.1,1,10)==[0.1:0.1:1]
false
Run Code Online (Sandbox Code Playgroud)


Jes*_*ton 5

现在不赞成使用原始答案。您应该collect()用来生成序列。

## In Julia
> collect(0:.1:1)
10-element Array{Float64,1}:
 0.1
 0.2
 0.3
 0.4
 0.5
 0.6
 0.7
 0.8
 0.9
 1.0

## In R
> seq(0, 1, .1)
 [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Run Code Online (Sandbox Code Playgroud)