Function Julia 1.0.5中结合ForwardDiff和PyPlot的问题

Function Julia 1.0.5中结合ForwardDiff和PyPlot的问题,function,matplotlib,parameters,julia,array-broadcasting,Function,Matplotlib,Parameters,Julia,Array Broadcasting,在Julia 1.0.5中,我有一个函数f(x::Vector{,这个问题可以通过多次分派的功能来解决: f(x::Vector{<:Real}) = (x[1] - 2)^2 + ( x[2] - 1 )^2 f(x::Real,y::Real) = f([x,y]) nx = 10 ny = 20 X = rand(nx) #mesh of x points Y = rand(ny) #mesh of y points Z = f.(transpose(X),Y) #nx x ny m

在Julia 1.0.5中,我有一个函数
f(x::Vector{,这个问题可以通过多次分派的功能来解决:

f(x::Vector{<:Real}) = (x[1] - 2)^2 + ( x[2] - 1 )^2
f(x::Real,y::Real) = f([x,y])
nx = 10
ny = 20
X = rand(nx) #mesh of x points
Y = rand(ny) #mesh of y points
Z = f.(transpose(X),Y) #nx x ny matrix

这将如何解决绘图问题?另外,
f(x)不是这样吗?有了这一点,函数值可以用两个实数参数来计算。然而,当使用点格式的
f(x,y)
时,第一个参数也必须被转换,以便广播按预期工作,如
f.(x',y)
所示。
LoadError: MethodError: no method matching (::getfield(Main, Symbol("#f#1044")))(::Int64)
Closest candidates are:
  f(!Matched::Array{#s25,1} where #s25<:Real)
f(x::Vector{<:Real}) = (x[1] - 2)^2 + ( x[2] - 1 )^2
f(x::Real,y::Real) = f([x,y])
nx = 10
ny = 20
X = rand(nx) #mesh of x points
Y = rand(ny) #mesh of y points
Z = f.(transpose(X),Y) #nx x ny matrix
two_point_gradient(f,x,y) = ForwardDiff.gradient(f,[x,y])
G = two_point_gradient.(f,transpose(X),Y) #returns a vector of gradients, where G[i..] = gradient(f,X[i..],Y[i...])