【问题标题】:I am facing a challenge with julia range我正面临着 Julia Range 的挑战
【发布时间】:2021-04-07 00:29:27
【问题描述】:

我是 Julia 的新手。 在在线尝试示例时,我得到了下面的情节:

using Plots

# 10 data points in 4 series
xs = range(0, 2π, length = 10)
data = [sin.(xs) cos.(xs) 2sin.(xs) 2cos.(xs)]

# We put labels in a row vector: applies to each series
labels = ["Apples" "Oranges" "Hats" "Shoes"]

# Marker shapes in a column vector: applies to data points
markershapes = [:circle, :star5]

# Marker colors in a matrix: applies to series and data points
markercolors = [
    :green :orange :black :purple
    :red   :yellow :brown :white
]

plot(
    xs,
    data,
    label = labels,
    shape = markershapes,
    color = markercolors,
    markersize = 10
)

我面临的问题是一开始。即使我在REPL下面单独尝试

julia> xs = range(0, 2π, length = 10)

我收到以下错误:

ERROR: MethodError: no method matching range(::Int64, ::Float64; length=10)
Closest candidates are:
  range(::Any; length, stop, step) at range.jl:76
Stacktrace:
 [1] top-level scope at none:0

我是否忘记包含一些包?

【问题讨论】:

  • 您使用的是旧版本的 Julia。如果可以,您应该使用最新的稳定版 Julia(在撰写本文时为 v1.6.0),xs = range(0, 2π, length = 10) 可以正常工作! (而且它还有许多其他改进,比如绘制事物的时间!)

标签: julia


【解决方案1】:

您使用的是哪个版本的 Julia?听起来您使用的版本比您正在阅读的教程旧。我可以验证 range(0, 2π, length = 10) 在 Julia 1.5 和 Julia 1.6 上产生 0.0:0.6981317007977318:6.283185307179586,即使没有指定 stop

【讨论】:

  • 你完全正确.. 我刚刚安装了 1.5,它按照示例工作。我总是倾向于安装我的操作系统打包系统中可用的版本,以避免任何依赖问题......
  • 关键字参数length 是强制性的,与已弃用的linspace 不同。
【解决方案2】:

我想我应该在发帖之前做更多的研究。我猜这是原始帖子中的错误。

我应该使用:

julia> xs = range(0, stop=2π, length = 10)
0.0:0.6981317007977318:6.283185307179586

没有更多错误!

很奇怪,我正在关注官方教程... :((

【讨论】:

  • 请发布您正在关注的官方教程以及您正在运行的 Julia 版本的链接。这可能只是版本不匹配,但如果不是,我可以提出问题。
  • 这是一个版本问题。现在我都清楚了。谢谢。
  • 不用担心。仅供参考,几乎所有标准存储库都远远落后于您从 Julia 网页获得的稳定版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多