当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia reinterpret用法及代码示例


用法一

reinterpret(type, A)

更改内存块的type-interpretation。对于数组,这将构造一个数组视图,该数组具有与给定数组相同的二进制数据,但具有指定的元素类型。例如,reinterpret(Float32, UInt32(7)) 将对应于 UInt32(7) 的 4 个字节解释为 Float32

例子

julia> reinterpret(Float32, UInt32(7))
1.0f-44

julia> reinterpret(Float32, UInt32[1 2 3 4 5])
1×5 reinterpret(Float32, ::Matrix{UInt32}):
 1.0f-45  3.0f-45  4.0f-45  6.0f-45  7.0f-45

用法二

reinterpret(reshape, T, A::AbstractArray{S}) -> B

在使用或添加“通道维度”时更改A 的type-interpretation。

如果 sizeof(T) = n*sizeof(S)n>1 ,则 A 的第一个维度的大小必须为 n 并且 B 缺少 A 的第一个维度。相反,如果 sizeof(S) = n*sizeof(T) 用于 n>1 ,则 B 获得大小为 n 的新第一维。如果 sizeof(T) == sizeof(S) ,则维度不变。

Julia 1.6

此方法至少需要 Julia 1.6。

例子

julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
 1  2
 3  4

julia> reinterpret(reshape, Complex{Int}, A)    # the result is a vector
2-element reinterpret(reshape, Complex{Int64}, ::Matrix{Int64}) with eltype Complex{Int64}:
 1 + 3im
 2 + 4im

julia> a = [(1,2,3), (4,5,6)]
2-element Vector{Tuple{Int64, Int64, Int64}}:
 (1, 2, 3)
 (4, 5, 6)

julia> reinterpret(reshape, Int, a)             # the result is a matrix
3×2 reinterpret(reshape, Int64, ::Vector{Tuple{Int64, Int64, Int64}}) with eltype Int64:
 1  4
 2  5
 3  6

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.reinterpret — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。