朱莉娅MethodError Array Int64

时间:2019-06-06 19:16:42

标签: julia julia-jump

我已经尝试调试和解决一些代码,这是我的下一个障碍。

ERROR: LoadError: MethodError: no method matching Array(::Type{Int64}, ::Int64)
Closest candidates are:
  Array(::LinearAlgebra.UniformScaling, ::Integer, ::Integer) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.1\LinearAlgebra\src\uniformscaling.jl:345

我仔细阅读了所提供的资料,看起来数组定义可能已更改为使用arrArray{Int64,0}……但这些似乎对我也不起作用。有什么建议吗?预先谢谢你!

    # Puts the output of one lineup into a format that will be used later
    if status==:Optimal
        data_lineup_copy = Array(Int64, 0)
        for i=1:num_data
            if getValue(data_lineup[i]) >= 0.9 && getValue(data_lineup[i]) <= 1.1
                data_lineup_copy = vcat(data_lineup_copy, fill(1,1))
            else
                data_lineup_copy = vcat(data_lineup_copy, fill(0,1))
            end
        end
        for i=1:num_shot
            if getValue(shot_lineup[i]) >= 0.9 && getValue(shot_lineup[i]) <= 1.1
                data_lineup_copy = vcat(data_lineup_copy, fill(1,1))
            else
                data_lineup_copy = vcat(data_lineup_copy, fill(0,1))
            end
        end
        return(data_lineup_copy)
    end
end
    data1 = Array(Int64, 0)
    data2 = Array(Int64, 0)
    data3 = Array(Int64, 0)

1 个答案:

答案 0 :(得分:1)

Array(Int64, 0)将在较旧的版本(可能是0.6年前的时代)上创建一个空的Int64一维数组(即Vector)。

现在,要创建一个空的Int64一维数组,您可以使用以下任何一种方法

data1 = Array{Int64, 1}(undef, 0) # where `1`, the second type parameter is for the dimension
data1 = Array{Int64}(undef, 0)
data1 = Vector{Int64}(undef, 0)
data1 = Vector{Int64}()
data1 = Int64[]

您始终可以通过Julia的array construction的不同方式查阅官方文档。