2014-04-07 66 views
2

我有一個巨大的雙精度數字的二進制文件,我想加載它的一部分到Matlab。有沒有辦法做到這一點?加載巨大的二進制文件部分到Matlab

一種方法是,如果我可以將它轉換成一個.mat文件(無需首先在Matlab中加載它),但我一直無法弄清楚(或實際上是否可行)。

任何想法?

PS:我正在考慮使用C++來進行轉換,但事實證明這是非常有問題的,因爲我使用的是linux版本的C++(通過cygwin)和windows版本的Matlab。

+1

從文檔:* fopen(文件名)打開文件,文件名,二進制讀取訪問*離開你去。 –

回答

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以獲取更多信息。