在 MATLAB 中读取和写入字符串和整数到二进制文件

Read and write strings and integers to binary file in MATLAB

我正在尝试写入,然后将以下数据读取到二进制文件中,但始终出现错误输出。

str_cetag = 'AIMIDB';
cel_num = 00089;
acq_date = 20150422110459;

% Open and write to file
fid = fopen('BFile.bin','w');
fwrite(fid,str_cetag);
fwrite(fid,cel_num);
fwrite(fid,acq_date);
fclose(fid);

% Open and read from file
fid = fopen('BFile.bin','r');
fread(fid,6,'uint8=>char')';
fread(fid,5,'uint8=>double')';
fread(fid,14,'uint8=>double')';
fclose(fid);

% Output
ans = 0
ans = AIMIDB
ans = 89   255   127
ans = []
ans = 0

有什么想法吗?谢谢

查看输出后,您可能会注意到 str_cetagcel_num 的写入和读取都是正确的。问题是 acq_date 太大而无法存储为 8 位无符号整数,这是 fwrite.

的默认值

这可以正常工作:

str_cetag = 'AIMIDB';
cel_num = 89;
acq_date = 20150422110459;

% Open and write to file
fid = fopen('BFile.bin','w');
fwrite(fid,str_cetag);
fwrite(fid,cel_num,'uint8');
fwrite(fid,acq_date,'uint64');
fclose(fid);

% Open and read from file
fid = fopen('BFile.bin','r');
fread(fid,6,'uint8=>char')'
fread(fid,1,'uint8')'
fread(fid,'uint64')'
fclose(fid);