Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在julia0.7中使用linspace_Julia - Fatal编程技术网

在julia0.7中使用linspace

在julia0.7中使用linspace,julia,Julia,我对在Julia 0.7中使用linspace感到困惑。以下是我在REPL中输入的内容和结果: 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.

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

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),则会得到以下结果:

julia> collect(a)
6-element Array{Float64,1}:
 0.1
 0.3
 0.5
 0.7
 0.9
 1.1
如果输入b=范围(0.1,1.1,6)并收集(b),则会得到:

julia> collect(b)
6-element Array{Float64,1}:
 0.1
 1.2
 2.3
 3.4
 4.5
 5.6
这显然是不一样的

为什么不推荐使用linspace(可能是另一个问题)并建议使用非等效的range命令


我的实际问题是:继续使用linspace以获得它所提供的预期结果是否安全,如果不安全,我应该使用什么来替代呢?

在这些批评之后,现在是:

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
在您的示例中,第二个参数是
步骤
,而不是
停止
,请注意,此方法也被弃用,您现在必须使用关键字参数:

julia> @which range(0.1, 1.1, 6)
range(start, step, length) in Base at deprecated.jl:53

如文档所述,您应该使用
LinRange

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


我被反对票弄糊涂了。这怎么会没有帮助呢?我想,一定是因为它没有被记录在案。@SalchiPapa我认为降低DNFs的声誉很尴尬,因为Julia在不断变化。也许我们可以试着把这个答案平衡在零@莉索,我自己也不在乎声誉积分,但你看,又回到了0分不过,用
LinRange
复制相同输出的示例(特别是因为没有文档记录)还是不错的。链接到讨论是有帮助的,但不能回答问题。现在有文档记录:作为注释,Julia 1.1中的stop关键字可以省略,即第二个位置参数被自动解释为stop。在Julia 1.4中,我只需添加行
linspace(a,b,n)=collect(范围(a,stop=b,length=n))
在“我的代码”的开头恢复功能。这可以使旧代码在不重构的情况下运行,并使API接近numpy/matlab,从而在跨这些语言工作时提高可移植性并缩短开发时间。
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