减法中没有方法匹配

时间:2017-03-22 09:13:28

标签: julia

我在运行此代码后使用julia 0.5:

Freqsample = 100;
second = 4;
step = (Freqsample * second )-1

我收到此错误:

MethodError: no method matching getindex(::Int64, ::Colon, ::UnitRange{Int64})
 in -(::Int64, ::Int64) at main.jl:12
 in include_string(::String, ::String) at loading.jl:441
 in eval(::Module, ::Any) at boot.jl:234
 in (::Atom.##65#68)() at eval.jl:40
 in withpath(::Atom.##65#68, ::Void) at utils.jl:30
 in withpath(::Function, ::Void) at eval.jl:46
 in macro expansion at eval.jl:109 [inlined]
 in (::Atom.##64#67{Dict{String,Any}})() at task.jl:60

减法有什么不对?如果这是一个愚蠢的问题,我对朱莉娅来说是个新朋友。

1 个答案:

答案 0 :(得分:7)

您已重新定义-以获得比您预期更多的类型。您发布的回溯中的第二行告诉您,Julia在-中为两个整数调用main.jl方法。第一行是说它在那里试图在第12行做x[:, 1:5]之类的事情,其中​​x是一个整数。

这告诉我两件事;

  1. 您对-的定义可能过于夸张。你可能并不打算接受整数。

  2. 您可能遮蔽内置-定义而不是扩展它。您需要import Base: -才能向标准库中的函数添加新方法。