首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Julia 0.7中使用linspace

在Julia 0.7中使用linspace
EN

Stack Overflow用户
提问于 2018-06-22 02:24:26
回答 2查看 14.8K关注 0票数 9

我对在Julia 0.7中使用linspace感到困惑。下面是我在REPL中输入的内容和结果:

代码语言:javascript
复制
julia> a = linspace(0.1,1.1,6)
┌ Warning: `linspace(start, stop, length::Integer)` is deprecated, use `range(start, stop=stop, length=length)` instead.
│   caller = top-level scope
└ @ Core :0
0.1:0.2:1.1

我的问题是关于不推荐使用的警告和范围的建议用法。range语句与linspace命令的作用不同。

如果输入a= linspace(0.1,1.1,6)并收集(A),则会得到以下结果:

代码语言:javascript
复制
julia> collect(a)
6-element Array{Float64,1}:
 0.1
 0.3
 0.5
 0.7
 0.9
 1.1

如果输入b= range(0.1,1.1,6)并收集(B),则得到:

代码语言:javascript
复制
julia> collect(b)
6-element Array{Float64,1}:
 0.1
 1.2
 2.3
 3.4
 4.5
 5.6

这显然是不一样的。

为什么不推荐使用linspace (可能是另一个问题),而建议使用不等价的range命令?

我的实际问题是:继续使用linspace以获得期望的结果安全吗?如果不安全,我应该使用什么来代替?

EN

回答 2

Stack Overflow用户

发布于 2018-06-23 00:43:25

您应该像文档中的here一样使用LinRange

在开始和结束之间具有长度线性间隔的元素的范围。间距的大小由len控制,它必须是Int。

代码语言:javascript
复制
julia> LinRange(1.5, 5.5, 9)
9-element LinRange{Float64}:
 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5

编辑2021:从1.7版开始,您可以使用range函数执行以下操作:

代码语言:javascript
复制
jl> range(1.5, 5.5, 9)
1.5:0.5:5.5

对于1.6版,你必须这样写:range(1.5, 5.5, length=9)

票数 16
EN

Stack Overflow用户

发布于 2018-06-22 03:25:44

在弃用之后,现在是:

代码语言:javascript
复制
julia> range(0.1, stop = 1.1, length = 6) |> collect
6-element Array{Float64,1}:
 0.1
 0.3
 0.5
 0.7
 0.9
 1.1

在您的示例中,第二个参数是step,而不是stop,请注意,此方法也已弃用,您现在必须使用关键字参数:

代码语言:javascript
复制
julia> @which range(0.1, 1.1, 6)
range(start, step, length) in Base at deprecated.jl:53
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50975292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档