當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。