gpt4 book ai didi

arrays - 如何获取数组类型参数

转载 作者:行者123 更新时间:2023-12-01 23:22:25 25 4
gpt4 key购买 nike

在 Julia 中,如果我使 x = rand(10,2),那么

>> typeof(x)
Matrix{Float64} (alias for Array{Float64, 2})

如何访问类型参数,即如何获取数组 xFloat642 的数组?

最佳答案

(顺便说一句:正如您的标题所说,您不是在寻找“子类型”,而是在寻找“类型参数”。)

元素类型很容易用eltype获取:

jl> eltype(x)
Float64

维度可以从数组的size中获取:

jl> length(size(x))
2

编辑:最好使用 ndims:

jl> ndims(x)
2

如果您无权访问 x 本身,而只能访问其类型,eltype 仍然有效:

jl> T = typeof(x);

jl> eltype(T)
Float64

维度有点难。您可以检查类型变量的属性(但我不建议这样做,因为这是该类型的内部实现细节,可能不稳定):

jl> T.parameters
svec(Float64, 2)

jl> T.parameters[2]

更好的方法可能是创建一个函数来为您获取此信息:

jl> dims(::Type{<:AbstractArray{T, N}}) where {T, N} = N
dims (generic function with 3 methods)

jl> dims(T)
2

编辑:您也可以将 ndims 与类型变量一起使用:

jl> ndims(T)
2

所以,实际上,答案是:eltype 表示元素类型,ndims 表示维数,无论是数组还是类型一个数组。

关于arrays - 如何获取数组类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67821272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com