2

倍精度数を含む巨大なバイナリ ファイルがあり、その一部を Matlab にロードしたいと考えています。これを行う方法はありますか?

1つの方法は、(最初にMatlabにロードせずに).matファイルに変換できた場合ですが、その方法を理解できませんでした(または実際に可能かどうか)。

何か案は?

PS: C++ を使用して変換を行うことを考えていましたが、Linux バージョンの C++ (cygwin 経由) と Windows バージョンの Matlab を使用しているため、これは本当に問題があることがわかりました。

4

1 に答える 1

2

ファイルのどの部分をロードするかがわかっている場合は、fseek続けて使用できますfread(もちろん、両方の前fopenに が付きます)。

たとえば、数千バイトをファイルにジャンプし、特定のバイト数を double として読み取ります。

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 に答える