将巨大的二进制文件部分加载到Matlab中

时间:2014-04-07 17:40:55

标签: matlab file-io binaryfiles mat-file

我有一个带有双精度数字的巨大二进制文件,我想将它的一部分加载到Matlab中。有没有办法做到这一点?

如果我可以将它转换为.mat文件(不首先在Matlab中加载),可能有一种方法,但是我还没有弄清楚如何(或者它是否真的可能)

有什么想法吗?

PS:我正在考虑使用c ++进行转换,但事实证明这确实存在问题,因为我使用的是Linux版本的c ++(通过cygwin)和Windows版本的Matlab。

1 个答案:

答案 0 :(得分:2)

如果您知道要加载的文件的哪些部分,则可以使用fseek后跟fread(当然前面都有fopen)。

例如,将几千个字节跳转到一个文件中并读取一定数量的字节,为双倍:

fid = fopen('binary.dat','r');
fseek(fid, 3000, 'bof');
A = fread(fid, N, 'double');
fclose(A); % don't forget to close the file

有关详细信息,请参阅名为Reading Portions of a File的文档部分。