Methods 为什么函数与调用不匹配?

Methods 为什么函数与调用不匹配?,methods,julia,method-call,Methods,Julia,Method Call,我有一个函数blur_1Dv,l,它取一个向量v和一个整数l,对于v中的每个值v[I],它得到I-l到I+l的平均值,并替换v[I]来创建模糊。我的功能与呼叫不匹配。这是密码 function mean(x) sum = 0.0 for i in 1:length(x) sum += x[i] end return sum / length(x) end 为什么它会给我一个错误 MethodError: no method matching

我有一个函数blur_1Dv,l,它取一个向量v和一个整数l,对于v中的每个值v[I],它得到I-l到I+l的平均值,并替换v[I]来创建模糊。我的功能与呼叫不匹配。这是密码

function mean(x)
    sum = 0.0

    for i in 1:length(x)
        sum += x[i]
    end

    return sum / length(x)
end
为什么它会给我一个错误

MethodError: no method matching blur_1D(::Array{Float64,1})
Closest candidates are:
blur_1D(::Any, !Matched::Any) at /Users/...
请原谅任何低效、不雅观的代码/语法,但我也欢迎关于如何改进的建议:

也许模糊函数中的l参数有一些默认值,您通常希望使用单参数版本

在这种情况下,应使用默认值定义函数:

function blur_1D(v, l=0)
顺便说一句,我强烈反对使用l作为变量名,因为它很容易被误认为是1,特别是当代码被其他人读取时。

也许模糊函数中的l参数有一些默认值,您通常希望使用单参数版本

在这种情况下,应使用默认值定义函数:

function blur_1D(v, l=0)

顺便说一句,我强烈反对使用l作为变量名,因为它很容易被误认为是1,尤其是当代码被其他人读取时。

什么是零?那就是零。模糊取两个参数,只传递一个。注意,有统计信息。平均值,哪一个可能会给出更稳定的结果。什么是零?那将是零。blur_v接受两个参数,您只传递一个。请注意,有统计信息。mean,这可能会给出更稳定的结果。谢谢!同意。我正在做一些指定,包括给定的定义和变量名。我个人的偏好通常是给变量命名,以清楚地表明它们的作用/保持。谢谢!同意。我正在做一些指定,包括给定的定义和变量名。我个人的偏好通常是给变量起名字,清楚地表明它们的作用。
begin
    colored_line(x::Vector{<:Real}) = Gray.(Float64.((hcat(x)')))
    colored_line(x::Any) = nothing
end
colored_line(blur_1D(v))
MethodError: no method matching blur_1D(::Array{Float64,1})
Closest candidates are:
blur_1D(::Any, !Matched::Any) at /Users/...
function blur_1D(v, l=0)