julia - Polyfit 函数 Julia 出错
问题描述
我有点需要julia
为我最近开始的博士编写代码,并且在尝试使用包中的polyfit
函数时遇到了这个错误,Polynomials
这真的让我很烦恼:
DomainError
Stacktrace:
[1] polyfit(::StepRangeLen{Float64,Base.TwicePrecision{Float64},Base.TwicePrecision{Float64}}, ::Array{Int64,1}, ::Int64, ::Symbol) at /home/jrun/.julia/v0.6/Polynomials/src/Polynomials.jl:700 (repeats 2 times)
我尝试了各种不同类型的测试,但即使使用像这样简单的代码也能得到它:
Pkg.add("Polynomials")
using Polynomials
x = []
for i in 1:9
append!(x, i)
end
y = [1,2,3,4,3,4,2,3,1]
polyfit(x, y)
有人知道这意味着什么吗?
谢谢 !
解决方案
请在您的问题中包含一个独立的示例,我们可以自己复制。也值得输出,versioninfo()
因为问题可能是由不同的版本/平台组合引起的。
为了回答您的问题,我将首先在我的平台上运行您的代码:
versioninfo()
Julia Version 0.6.3
Commit d55cadc350 (2018-05-28 20:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz
WORD_SIZE: 64
BLAS: libopenblas (NO_AFFINITY SANDYBRIDGE MAX_THREADS=8)
LAPACK: liblapack
LIBM: libopenlibm
LLVM: libLLVM-3.9.1 (ORCJIT, ivybridge)
你的代码输出给了我:
Pkg.add("Polynomials")
using Polynomials
x = []
for i in 1:9
append!(x, i)
end
y = [1,2,3,4,3,4,2,3,1]
polyfit(x, y)
ERROR: `float` not defined on abstractly-typed arrays; please convert to a more specific type
Stacktrace:
[1] float at ./float.jl:848 [inlined]
[2] polyfit(::Array{Any,1}, ::Array{Int64,1}, ::Int64, ::Symbol) at /home/aytekin/.julia/v0.6/Polynomials/src/Polynomials.jl:708
[3] polyfit(::Array{Any,1}, ::Array{Int64,1}) at /home/aytekin/.julia/v0.6/Polynomials/src/Polynomials.jl:700
[4] eval(::Module, ::Any) at ./boot.jl:235
该错误是由您定义x
变量的方式引起的。如果你写typeof(x)
,你会意识到它是Array{Any,1}
。Any
您在编写时定义了一个一维空数组x = []
。然后,您将值附加到它。定义抽象类型的容器(Any
所有julia
类型都是子类型的抽象类型)不利于提高效率。此外,以您的方式附加到向量也不是一个好习惯。除了效率问题,x
应该是Vector
某种Number
类型的。简而言之,如果您将代码更改为如下所示:
x = collect(1:9)
typeof(x)
y = [1,2,3,4,3,4,2,3,1]
typeof(y)
p = polyfit(x, y)
您可能会看到您的x
和y
变量都是Vector
s 的Int64
。此外,您将获得多项式。
请通读Julia 文档的内容。如果您来自其中一种语言,则特别有用的是与其他语言的显着差异部分。
推荐阅读
- authentication - flask-jwt-extended current_user identity = 从刷新令牌创建非新鲜访问令牌时无
- shell - shell中的“set -e”和“test”
- maven - 我如何获得项目的maven编译数量
- reactjs - 找不到模块:错误:无法解析“react-module-test”
- maven - 如何将 Maven Profiles 值传递给 Spring Bean XML
- android - 在 Android 的 Application 类中为 DI 创建所有模块
- html - 在 Angular 中使用对象的动态选择选项
- c - 删除动态指针数组中单元格的正确方法
- javascript - Vue-Bootstrap 不适用于 Django。我怎样才能正确开始呢?
- z3 - Z3 求解器输出 CUT 2