2

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

一种方法是,如果我可以将其转换为 .mat 文件(无需先将其加载到 Matlab 中),但我无法弄清楚如何(或者是否真的可能)。

有任何想法吗?

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

4

1 回答 1

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

有关详细信息,请参阅名为“读取文件部分”的文档部分。

于 2014-04-07T17:44:43.157 回答