【问题标题】:Julia: Index an array with Int64?Julia:用 Int64 索引一个数组?
【发布时间】:2014-11-20 09:14:13
【问题描述】:

以下代码报错

ERROR: `setindex!` has no method matching setindex!(::Type{Array{Int32,32}}, ::Int32, ::Int64)

我应该能够做到这一点吗?我认为问题在于循环变量的类型错误,无法用作数组索引?

n = parseint(readline(STDIN))
A = Array{Int32, n}
for i in 1:n-1
    ai = parseint(Int32, readuntil(STDIN, ' '))
    A[i] = ai #The error happens here!
end
A[n] = parseint(Int32, readline(STDIN))

【问题讨论】:

    标签: julia


    【解决方案1】:

    您对 A 的分配是合法的,但它并没有像您认为的那样做。

    A = Array{Int32,n}
    
    julia> typeof(A)
    DataType
    

    这将 A 声明为表示 n 维数组的类型。相反,您想要的可能是 A 是一个包含 n 元素的 Array{Int32,1} 类型的变量。因此,请尝试以下方法:

    A = Array(Int32,n);
    
    julia> typeof(A)
    Array{Int32,1}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 2018-10-25
      • 2021-02-27
      • 2016-03-09
      • 1970-01-01
      相关资源
      最近更新 更多