首页 > 解决方案 > 在 Julia 中将 float64 3-D 数组转换为 float32 3-D 数组

问题描述

我尝试了以下方法,但都没有奏效

A = zeros(2,2,2)
A[:,:,1] = [1 2; 3 4]
A[:,:,2] = [10 20; 30 40]

for i=1:size(A,1)
    convert(Array{Float32,2}, A[i,:,:])
end

print(typeof(A))

输出:Array{Float64,3}

convert(Array{Float32,3}, A)
print(typeof(A))

输出:Array{Float64,3}

map(y->(Float32,y), A)
print(typeof(A))

输出:Array{Float64,3}

我什至无法将 Float64 数组转换为Int

for i=1:size(A,1)
    round.(Int,  A[i,:,:])
end

print(typeof(A))

输出:Array{Float64,3}

我还能做些什么来尝试将其从 转换Array{Float64,3}Array{Float32,3}

标签: arraysjulia

解决方案


A = zeros(2,2,2)
A[:,:,1] = [1 2; 3 4]
A[:,:,2] = [10 20; 30 40]

采用Float32.(A)

julia> A=Float32.(A)
2×2×2 Array{Float32,3}:
[:, :, 1] =
 1.0  2.0
 3.0  4.0

[:, :, 2] =
 10.0  20.0
 30.0  40.0

julia> print(typeof(A))
Array{Float32,3}

这 '。' 用于按元素广播操作的运算符。


推荐阅读