Julia:LoadError:MethodError:`call`没有匹配调用的方法(:: Array {Float64,1},:: Int64)

时间:2016-02-23 02:32:33

标签: julia ijulia-notebook

我想用Julia来计算点(x(i),y(i))和(x(j),y(j))之间的欧几里德距离,我使用以下代码

C = zeros(Float64,10,10)
x = [0.0, 20.0, 18.0, 30.0, 35.0, 33.0, 5.0, 5.0, 11.0, 2.0]
y = [0.0, 20.0, 10.0 ,12.0 ,0.0 ,25.0 ,27.0 ,10.0 ,0.0 ,15.0]
Required = [10.0, 6.0 ,8.0 ,11.0 ,9.0 ,7.0 ,15.0 ,7.0 ,9.0 ,12.0]
Present = [8.0, 13.0, 4.0, 8.0, 12.0, 2.0, 14.0, 11.0, 15.0, 7.0]

for i in 1:10
    for j in 1:10
        C[i,j] = 1.3*sqrt((x(i) - x(j))^2.0 + (y(i) - y(j))^2.0)
    end
end  

朱莉娅给了我以下结果

eLoadError: MethodError: `call` has no method matching        call(::Array{Float64,1}, ::Int64)
Closest candidates are:
BoundsError()
BoundsError(!Matched::Any...)
DivideError()
...
while loading In[17], in expression starting on line 7

[inlined code] from In[17]:9
in anonymous at no file:0

任何人都可以解决我的问题吗?谢谢!

2 个答案:

答案 0 :(得分:1)

使用x[i]代替x(i)等。 后者是Matlab语法,它在Julia中不起作用。

答案 1 :(得分:1)

拉克什是对的。此外,错误消息的原因是,它可能会重载f( ... )函数调用语法,因此它认为您正在尝试“调用”该数组,并且说没有匹配的调用定义。 / p>