在 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_cetag
和 cel_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);
我正在尝试写入,然后将以下数据读取到二进制文件中,但始终出现错误输出。
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_cetag
和 cel_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);