m = []
初始化一个大小为1的空数组。我想要初始化一个大小为2的空数组(稍后会向其中添加值)。这可行吗?
m = []
初始化一个大小为1的空数组。我想要初始化一个大小为2的空数组(稍后会向其中添加值)。这可行吗?
从Julia 1.0版本开始,您可以使用以下方法:
m = Array{Float64}(undef, 0, 0)
对于存储Float64
值或其他更一般的内容的二维矩阵,其大小为(0,0):
m = Array{T}(undef, a, b, ...,z)
对于一个大小为 (a,b,...,z) 的多维张量(其内容为类型为 T
的垃圾数据)。
尝试:
m = reshape([],0,2)
或者,m = Array{Float64}(undef, 0, 2)
明确定义类型的第二个选项应该会生成更快的代码。
一个评论者短暂地建议使用Matrix()
来表示0x0矩阵,而使用Matrix(0,2)
来表示0x2矩阵。
m = Array{Float64, 2}()
。 - amrods现在创建空数组变得更加简单了:
使用方括号内的多个分号,可以创建空的n维数组。
julia> m = [;;]
# 0×0 Matrix{Any}
julia> m = [;;;]
# 0×0×0 Array{Any, 3}
Array
的语法糖:
julia/test/syntax.jl#L3143-L3146
@test [] == Array{Any}(undef, 0) @test [;] == Array{Any}(undef, 0) @test [;;] == Array{Any}(undef, 0, 0) @test [;;;] == Array{Any}(undef, 0, 0, 0)