这是工作正常的代码:
function band_limited_interpolation()
h=1
xmax=10
x = -xmax:h:xmax
xx = -xmax-h/20:h/10:xmax+h/20
v = x .== 0
function p(v)
p = zeros(size(xx))
for i in 1:length(x)
p += v[i] * sin.(π*(xx.-x[i])/h) ./ (π*(xx.-x[i])/h)
end
p
end
plot1 = plot(x, v, seriestype=:scatter, legend=false)
plot!(xx, p(v), xlims=(-10,10), ylims=(-0.5,1.1))
end
band_limited_interpolation()
但是,如果我再次尝试调用,则会p(v)
收到方法错误。
这是相同的函数,只有最后一行发生了变化:
function band_limited_interpolation()
h=1
xmax=10
x = -xmax:h:xmax
xx = -xmax-h/20:h/10:xmax+h/20
v = x .== 0
function p(v)
p = zeros(size(xx))
for i in 1:length(x)
p += v[i] * sin.(π*(xx.-x[i])/h) ./ (π*(xx.-x[i])/h)
end
p
end
plot1 = plot(x, v, seriestype=:scatter, legend=false)
plot!(xx, p(v), xlims=(-10,10), ylims=(-0.5,1.1))
p(v)
end
band_limited_interpolation()
MethodError: Vector{Float64} 类型的对象不可调用使用方括号 [] 来索引数组。
为什么是这样?我可以在通话中调用它plot!
吗?