Matlab 生成二进制文件

https://ww2.mathworks.cn/help/matlab/ref/fwrite.html#d126e493019

  • fwrite(fileID,A,precision),按列顺序写入矩阵 A 二进制文件

precision 主要选项:

值类型 精度 位(字节) 范围
有符号整数 ‘int32’ 32 (4) 2147483648(约 21 亿)
有符号整数 ‘int64’ 64 (8) 2^63
浮点数 single’ 32 (4) 约 10^-38) 与 10^(+38)
浮点数 ‘double’ 64 (8) 约 10^-308) 与 10^(+308)
字符 ‘char*1’ 8 (1) -
1
2
3
fileID = fopen('magic5.bin','w');
fwrite(fileID,magic(5),'int32');
fclose(fileID);

Matlab 读取二进制文件

https://ww2.mathworks.cn/help/matlab/ref/fread.html

  • A = fread(fileID,precision);根据 precision 描述的格式解释文件中的值,按列顺序填充 A
1
2
3
fileID = fopen('magic5.bin','r');
A = fread(fileID,'int32')
fclose(fileID);

Fortran 读取二进制文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
! recl 参数是写出二进制时设置的格式的字节大小,如'int32'=4,'int64'=8
open(100,File="AA.dat",form="binary",access="sequential",recl=4,status="old")
read(100) AA
close(100)

program read_binary_file
implicit none

integer(4) :: n = 100 ! 数组维数
integer(8) :: AA(n) ! 存 int64 数据

open(100,File="AA.dat",form="binary",access="sequential",recl=4,status="old")
read(100) AA
close(100)

write(*, *) "从文件中读取的数据:"
write(*,*) AA

end program read_binary_file