# In GaussianProcess.jl it is throwing error if I choose \`MeanConst()\`

**URL:** <https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008>\
**Category:** Statistics\
**Created:** [April 3, 2023, 9:49am UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008 "2023-04-03T09:49:30Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sourish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sourish/32/34156_2.png) [@Sourish](https://discourse.julialang.org/u/Sourish)\
**Post date:** [April 3, 2023, 9:49am UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/1 "2023-04-03T09:49:30Z")

</div>

Hi

In the following code, I am trying to implement a constant mean function from GaussianProcesses.jl. But it is throwing an error stating `no method matching MeanConst()`

```plaintext
using GaussianProcesses
n = 100;
x = 2π * rand(n);
y = sin.(x) + 0.2*randn(n);
#mZero = MeanZero()
mConst = MeanConst()
kern = SE(0.0,0.0) ## squared exponential kernel
logObsNoise = -1.0
gp = GP(x, y, mConst, kern, logObsNoise)
optimize!(gp)
plot(gp)

```

It is throwing the following error.

```plaintext
MethodError: no method matching MeanConst()
Closest candidates are:
  MeanConst(::Float64) at ~/.julia/packages/GaussianProcesses/dOato/src/means/mConst.jl:23

Stacktrace:
 [1] top-level scope
   @ In[137]:5

```

---

<div class="post-metadata">

**Author:** ![DanielVandH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielvandh/32/31134_2.png) [@DanielVandH](https://discourse.julialang.org/u/DanielVandH)\
**Post date:** [April 3, 2023, 10:09am UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/2 "2023-04-03T10:09:10Z")

</div>

As suggested in the error, the only method is `MeanConst(::Float64)`, meaning you need to provide a constant as an argument - there is no default method with zero arguments.

---

<div class="post-metadata">

**Author:** ![Sourish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sourish/32/34156_2.png) [@Sourish](https://discourse.julialang.org/u/Sourish)\
**Post date:** [April 3, 2023, 10:38am UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/3 "2023-04-03T10:38:36Z")

</div>

Thank you. This makes sense. I provided a value and it worked. Thanks again.

---

<div class="post-metadata">

**Author:** ![Sourish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sourish/32/34156_2.png) [@Sourish](https://discourse.julialang.org/u/Sourish)\
**Post date:** [April 3, 2023, 11:14am UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/4 "2023-04-03T11:14:35Z")

</div>

Dear Daniel

Thanks again for pointing out the correct way to feed the arguments. One more question, how can we feed the MeanLin function?

[https://stor-i.github.io/GaussianProcesses.jl/latest/mean/#GaussianProcesses.MeanLin](https://stor-i.github.io/GaussianProcesses.jl/latest/mean/#GaussianProcesses.MeanLin)

Thanking you in advance.  
Best regards,  
Sourish

---

<div class="post-metadata">

**Author:** ![DanielVandH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielvandh/32/31134_2.png) [@DanielVandH](https://discourse.julialang.org/u/DanielVandH)\
**Post date:** [April 3, 2023, 11:16am UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/5 "2023-04-03T11:16:28Z")

</div>

Judging from the source here [GaussianProcesses.jl/mLin.jl at 1bcdf2dd8a988b91b0661e7ad1504d5fa66d9e65 · STOR-i/GaussianProcesses.jl · GitHub](https://github.com/STOR-i/GaussianProcesses.jl/blob/1bcdf2dd8a988b91b0661e7ad1504d5fa66d9e65/src/means/mLin.jl#L3-L11) (bottom right button of that documentation), you just pass it a vector of coefficients.

---

<div class="post-metadata">

**Author:** ![Sourish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sourish/32/34156_2.png) [@Sourish](https://discourse.julialang.org/u/Sourish)\
**Post date:** [April 3, 2023, 11:18am UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/6 "2023-04-03T11:18:05Z")

</div>

Yes - that is what I tried. But facing some errors. Thanks again. I will figure it out. Thanks again.

Best regards,  
Sourish

---

<div class="post-metadata">

**Author:** ![DanielVandH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielvandh/32/31134_2.png) [@DanielVandH](https://discourse.julialang.org/u/DanielVandH)\
**Post date:** [April 3, 2023, 11:38am UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/7 "2023-04-03T11:38:52Z")

</div>

What was the error?

```julia
julia> MeanLin([1.0,2.0,3.0])
Type: MeanLin, Params: [1.0, 2.0, 3.0]

```

---

<div class="post-metadata">

**Author:** ![Sourish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sourish/32/34156_2.png) [@Sourish](https://discourse.julialang.org/u/Sourish)\
**Post date:** [April 3, 2023, 4:44pm UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/8 "2023-04-03T16:44:23Z")

</div>

Dear Daniel:

Thanks again for your generous help. I tried your code:

```julia
MeanLin([1.0,2.0,3.0])

```

and I am getting this error.

```julia
MethodError: no method matching MeanLin(::Vector{Float64})
Closest candidates are:
  MeanLin() at In[161]:1

```

Do I need to update my system?

---

<div class="post-metadata">

**Author:** ![DanielVandH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielvandh/32/31134_2.png) [@DanielVandH](https://discourse.julialang.org/u/DanielVandH)\
**Post date:** [April 3, 2023, 10:28pm UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/9 "2023-04-03T22:28:05Z")

</div>

You might’ve accidentally re-defined the function, e.g. maybe something you did

```julia
MeanLin() = ...

```

or similar. You can see this from `In[161]:1` being the location of the method, when really it should be somewhere in GaussianProcesses.jl. Once you restart, it’ll be fixed

---

<div class="post-metadata">

**Author:** ![Sourish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sourish/32/34156_2.png) [@Sourish](https://discourse.julialang.org/u/Sourish)\
**Post date:** [April 4, 2023, 12:08pm UTC](https://discourse.julialang.org/t/in-gaussianprocess-jl-it-is-throwing-error-if-i-choose-meanconst/97008/10 "2023-04-04T12:08:15Z")

</div>

Oh dear - yes possible. Let me restart my session.

Sourish
