具有不同大小向量的 Julia 数组

标签 julia

创建各种大小的向量(例如数组)的数组时,我生成了错误消息。

julia> A = [[1,2] [1,2,3] [1,4] [1] [1,5,6,7]]
ERROR: DimensionMismatch("vectors must have same lengths")
Stacktrace:
 [1] hcat(::Array{Int64,1}, ::Array{Int64,1}, ::Array{Int64,1}, ::Vararg{Array{Int64,1},N} where N) at .\array.jl:1524
 [2] top-level scope at none:0

虽然,如果我初始化一个数组并分配向量“它可以”......
julia> A = Array{Any}(undef,5)
5-element Array{Any,1}:
 #undef
 #undef
 #undef
 #undef
 #undef

pseudo code> A[i] = [x,y...]
2-element Array{Int64,1}:
 1
 2

julia> A
5-element Array{Any,1}:
 [1, 2]
 [1, 2, 3]
 [1]
 [1, 5]
 [1, 2, 6, 4, 5]


有没有办法用不同大小的数组初始化数组,或者 Julia 是否以这种方式配置以防止错误。

最佳答案

您用于最外层数组的空格分隔语法专门用于矩阵的水平连接,因此您的代码试图将所有这些向量连接成一个矩阵,但由于它们具有不同的长度,因此不起作用。在外部数组中像内部数组一样使用逗号来获取数组数组:

julia> A = [[1,2], [1,2,3], [1,4], [1], [1,5,6,7]]
5-element Array{Array{Int64,1},1}:
 [1, 2]
 [1, 2, 3]
 [1, 4]
 [1]
 [1, 5, 6, 7]

关于具有不同大小向量的 Julia 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56366632/

相关文章:

graphics - 在 Julia 中使用 Gadfly 时设置点大小

julia - 如何在 Julia 中按值从数组中删除元素?

dictionary - 以字符串作为键和任何值的字典

julia - 生成表达式,然后在 Julia 中检查它们

csv - 如何减少在 Julia 中打开大型 csv 文件所需的时间(使用 CSV 和 DataFrames)?

julia - 制作宏以将函数标记为已弃用

Julia 点向量化 - 我需要向量化到调用链多深?

Julia 数据帧 : Problems with Split-Apply-Combine strategy

julia - 具有重复元素的数组的内存和计算高效创建