Julia - MethodError:没有方法匹配更少(:: Float64,:: Tuple {Int64,Int64})

时间:2017-10-15 10:24:24

标签: julia

我的问题是如果我将所有变量定义为Float64,为什么会出现此错误。不应该有问题。

这是代码和我得到的消息

pr = Array{Float64}(1001)
succ = Array{Float64}(1001)

pr1 = Float64
pr2 = Float64
pr3 = Float64
pr4 = Float64
pr5 = Float64

succ1 = Float64
succ2 = Float64
succ3 = Float64
succ4 = Float64
succ5 = Float64

pr1 = 100,0
pr2 = 80,0
pr3 = 50,0
pr4 = 30,0
pr5 = 0,0

succ1 = 0,5
succ2 = 0,6
succ3 = 0,85
succ4 = 0,95
succ5 = 1

x = Float64

for x = 1:1:1001
pr[x]= (x-1)/10

if pr[x] == pr5
  succ[x] = succ5
elseif pr[x] < pr4
  succ[x] = succ4 + (succ5 - succ4) * (pr5 - pr[x]) / (pr4-pr5)
elseif pr[x] < pr3
  succ[x] = succ3 + (succ4 - succ3) * (pr4 - pr[x]) / (pr3-pr4)
elseif pr[x] < pr2
  succ[x] = succ2 + (succ3 - succ2) * (pr3 - pr[x]) / (pr2-pr3)
elseif pr[x] < pr1
  succ[x] = succ1 + (succ2 - succ1) * (pr2 - pr[x]) / (pr1-pr2)
elseif pr[x] == pr1
  succ[x] = succ1

end

println(succ[x])

end

它可能与整数和浮动类型有关,但我不知道我如何将所有内容定义为Float64

1 个答案:

答案 0 :(得分:5)

不要这样做:pr1 = Float64。您可能认为这会将pr1定义为Float64类型,但您实际上将pr1定义为类型名称Float64的别名。只需pr1 = 100.0,Julia就会知道它是Float64。您可能希望声明该作业constconst pr1 = 100,如果您不进行更改。

此外,您无法在Julia中使用,作为小数点分隔符。 pr1 = 100,0pr1的值设置为元组(100,0)