如何在 Julia 中读取二进制文件?

Jon*_*Jon 9 julia

我使用过 Matlab,现在尝试将一些代码转换为 Julia。

% Load data in Matlab
fileID = fopen('./data_6000x3199.bin');
Data = fread(fileID,[6000,3199],'single');
fclose(fildID);
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何在 Julia 代码中读取这个单一类型的二进制文件。有人可以帮忙吗?

Dav*_*ela 11

read! 将用从二进制文件读取的数据填充数组:

julia> x # original array
2×2 Array{Float32,2}:
 1.0  3.0
 2.0  4.0

julia> write("test.bin", x) # write to binary file
16

julia> y = Array{Float32}(undef, 2, 2); # create a container for reading data

julia> read!("test.bin", y) # read data
2×2 Array{Float32,2}:
 1.0  3.0
 2.0  4.0
Run Code Online (Sandbox Code Playgroud)

'single'表示单精度浮点数,Float32在 Julia中用 表示。您的示例 MATLAB 代码将转换为以下 Julia 代码:

data = Array{Float32}(undef, 6000, 3199)
read!("data_6000x3199.bin", data)
Run Code Online (Sandbox Code Playgroud)