写了如下函数:
function getBCJθ(pJpzJθ, pJpδJθ, pΦpzJθ, pΦpδJθ, zJθ, δJθ, para::Param)
tmpB=elementcharge .* para.v1 ./ para.centerenergy ./ para.circum .* 𝒱(zJθ, para) .* pJpδJθ .- para.η .* δJθ .* pJpzJθ
tmpC=elementcharge .* para.v1 ./ para.centerenergy ./ para.circum .* 𝒱(zJθ, para) .* pΦpδJθ .- para.η .* δJθ .* pΦpzJθ
clight.*tmpB, clight.*tmpC
end
这里Param
是我定义的struct
。
结果报错:
MethodError: no method matching length(::Param)
Closest candidates are:
length(::Union{Base.KeySet, Base.ValueIterator}) at abstractdict.jl:58
length(::Union{ZMQ._Message, Base.RefValue{ZMQ._Message}}) at C:\Users\Emma\.julia\packages\ZMQ\R3wSD\src\_message.jl:31
length(::Union{Tables.AbstractColumns, Tables.AbstractRow}) at C:\Users\Emma\.julia\packages\Tables\fouQB\src\Tables.jl:180
...
Stacktrace:
[1] _similar_for(c::UnitRange{Int64}, #unused#::Type{Any}, itr::Param, #unused#::Base.HasLength)
@ Base .\array.jl:575
[2] _collect(cont::UnitRange{Int64}, itr::Param, #unused#::Base.HasEltype, isz::Base.HasLength)
@ Base .\array.jl:608
[3] collect(itr::Param)
@ Base .\array.jl:602
[4] broadcastable(x::Param)
@ Base.Broadcast .\broadcast.jl:682
[5] broadcasted
@ .\broadcast.jl:1313 [inlined]
[6] getBCJΦ(pJpzJΦ::Matrix{Float64}, pJpδJΦ::Matrix{Float64}, pΦpzJΦ::Matrix{Float64}, pΦpδJΦ::Matrix{Float64}, zJΦ::Matrix{Float64}, δJΦ::Matrix{Float64}, para::Param)
@ Main .\In[25]:2
[7] top-level scope
@ In[76]:1
[8] eval
@ .\boot.jl:360 [inlined]
[9] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
@ Base .\loading.jl:1116
奇怪的是,如果我将其中一行拿出来单独运行是OK的:
> elementcharge .* param.v1 ./ param.centerenergy ./ param.circum .* 𝒱(zJθ, param) .* pJpδJθ .- param.η .* δJθ .* pJpzJθ
200×400 Matrix{Float64}:
-2.69241e-18 -3.44829e-15 -6.88023e-15 … 6.88023e-15 3.44829e-15
-2.69594e-18 -5.93998e-15 -1.19826e-14 1.19826e-14 5.93998e-15
-4.38725e-18 -9.31931e-15 -1.85839e-14 1.85839e-14 9.31931e-15
-6.59754e-33 -1.4935e-14 -2.9751e-14 2.9751e-14 1.4935e-14
-3.53335e-33 -2.03482e-14 -4.1317e-14 4.1317e-14 2.03482e-14
-4.7654e-18 -2.59762e-14 -5.18763e-14 … 5.18763e-14 2.59762e-14
-9.88984e-33 -3.45101e-14 -6.88156e-14 6.88156e-14 3.45101e-14
-6.08881e-18 -4.29024e-14 -8.73901e-14 8.73901e-14 4.29024e-14
-1.32582e-32 -5.08774e-14 -1.01747e-13 1.01747e-13 5.08774e-14
-1.90719e-32 -6.41604e-14 -1.28327e-13 1.28327e-13 6.41604e-14
-2.09048e-33 -7.30096e-14 -1.44692e-13 … 1.44692e-13 7.30096e-14
-6.29995e-18 -8.88857e-14 -1.78549e-13 1.78549e-13 8.88857e-14
-1.7473e-17 -1.0848e-13 -2.16933e-13 2.16933e-13 1.0848e-13
⋮ ⋱
-2.12804e-31 -2.37465e-11 -4.8089e-11 4.8089e-11 2.37465e-11
-1.03896e-32 -2.4018e-11 -4.73568e-11 4.73568e-11 2.4018e-11
-2.79617e-33 -2.41498e-11 -4.79588e-11 … 4.79588e-11 2.41498e-11
-1.18342e-32 -2.45182e-11 -4.83747e-11 4.83747e-11 2.45182e-11