我对matlab中的文件IO有疑问。
当我读取二进制文件(单一类型,小端)时,我尝试在关闭文件之前读取文件两次。
fid=fopen('testSample.bin');
A = fread(fid,inf,'float32');
B = fread(fid,inf,'float32');
fclose(fid);
包含数据,但B为空。 所以,我关闭了文件ID并再次阅读。
fid=fopen('testSample.bin');
A = fread(fid,inf,'float32');
fclose(fid);
fid=fopen('testSample.bin');
B = fread(fid,inf,'float32');
fclose(fid);
并且,B包含数据。
在Matlab中关闭文件ID之前,是否无法读取文件两次?
所有编程语言都是常见的情况吗?
答案 0 :(得分:2)
在第二次阅读之前,您需要将文件指针重置在正确的位置。为此,您可以使用fseek。
fid=fopen('testSample.bin');
A = fread(fid,inf,'float32');
fseek(fid, 0, 'bof');
B = fread(fid,inf,'float32');
fclose(fid);