function lg(X,Y,Xint)
n = length(X)
L = ones(1:n)
for k = collect(1:n)
L[k] = 1
for c = collect(1:n)
if c!=k
L[k] = (L[k]*( Xint - X[c] ))/( X[k] - X[c] )
end
end
end
return sum(Y.*L)
end
=========================
执行时
LoadError:InexactError() 在[76]中加载时,从第1行开始的表达式
in in In [74]:11?
答案 0 :(得分:3)
ones
创建一个Int64数组:
julia> o = ones(1:3)
3-element Array{Int64,1}:
1
1
1
julia> o[1] = 3.5
ERROR: InexactError()
in setindex!(::Array{Int64,1}, ::Float64, ::Int64) at ./array.jl:339
in eval(::Module, ::Any) at ./boot.jl:226
您无法将Float64分配到Int64阵列中(您收到此错误)。
您只想使用ones(n)
获取Float64数组:
julia> ones(3)
3-element Array{Float64,1}:
1.0
1.0
1.0
附注:在迭代范围之前,您不需要collect
:
for k = collect(1:n)
而只是迭代范围:
for k = 1:n