在关闭文件ID之前,二次文件读取两次

时间:2015-10-29 07:33:59

标签: matlab file-io

我对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之前,是否无法读取文件两次?

所有编程语言都是常见的情况吗?

1 个答案:

答案 0 :(得分:2)

在第二次阅读之前,您需要将文件指针重置在正确的位置。为此,您可以使用fseek

fid=fopen('testSample.bin');

A = fread(fid,inf,'float32');    
fseek(fid, 0, 'bof');
B = fread(fid,inf,'float32');

fclose(fid);