📅  最后修改于: 2023-12-03 15:37:22.627000             🧑  作者: Mango
在 Julia 中,有时我们需要创建一个与已有数组类型相似的新数组,这时可以使用 similar()
方法。该方法允许我们创建具有相同元素类型和形状的新数组,并且可以根据需要进行其他调整。
similar(a::AbstractArray[, <eltype=type(a)>, <dims=size(a)>])
其中:
a::AbstractArray
是用来指定新数组与已有数组类型相似的原数组;eltype=type(a)
用来指定新数组元素类型,默认为原数组的元素类型;dims=size(a)
用来指定新数组的形状,默认与原数组形状相同。比如我们有一个 Int 类型的二维数组 a:
julia> a = [1 2 3; 4 5 6]
2×3 Array{Int64,2}:
1 2 3
4 5 6
现在我们需要创建一个与 a 类似的新数组,我们可以使用 similar()
方法:
julia> b = similar(a)
2×3 Array{Int64,2}:
6527136 6527200 6527264
6527328 6527392 6527456
我们可以看到,新数组 b 的元素类型与 a 相同,形状也相同。但是,由于我们没有指定新数组的元素值,新数组 b 中的元素值是随机的,并不是类似 a 数组中的元素值。
我们也可以在创建新数组时指定新数组的元素类型:
julia> c = similar(a, eltype=Float64)
2×3 Array{Float64,2}:
4.14005e-316 4.14005e-316 4.14005e-316
4.14005e-316 4.14005e-316 4.14005e-316
我们可以看到,新数组 c 的元素类型被指定为 Float64。
我们还可以在创建新数组时指定新数组的形状:
julia> d = similar(a, dims=(3, 2))
3×2 Array{Int64,2}:
0 0
0 0
0 0
我们可以看到,新数组 d 的形状被改为了 3×2。
在 Julia 中,使用 similar()
方法可以方便地创建一个与已有数组类型相似的新数组,并且可以根据需要进行其他调整。