Matlabでバイナリファイルを読み込む方法
MATLAB では、二進ファイルを fread 関数を使って読み込めます。fread 関数の構文は次のとおりです。
data = fread(fid, size, precision, skip, machineformat)
パラメータ説明:
- fileID:fopen関数でバイナリファイルを開いた際に取得できる、バイナリファイルのファイルID
- サイズ: 読み込む要素のサイズで、スカラーまたはサイズ2のベクトルにすることができます。スカラーの場合は要素をサイズ個読み込み、サイズ2のベクトルの場合は要素を size(1) * size(2) 個読み込みます。
- 精度:取得するデータの型は、以下のいずれか
- ubit1、ubit2、ubit4、ubit8:1、2、4、8ビットの符号なし整数
- int8、int16、int32、int64:負の値が使える整数、8、16、32、64ビット使用する
- ‘uint8’、 ‘uint16’、 ‘uint32’、 ‘uint64’:符号なし整数で、それぞれ 8、16、32、64 ビットの幅を持つ
- 「シングル」:単精度浮動小数点数、32bit
- ダブル:倍精度浮動小数点数、64ビット
- スキップ: スキップするバイト数。既定値は0で、スキップしないことを示します。
- 機械語形式のバイナリのマシンフォーマットで、デフォルトの「ネイティブ」は現在使用しているコンピュータのフォーマットと同じです。
バイナリファイルの読み取り例を以下に示します。
fileID = fopen('binaryfile.bin', 'rb'); % 以二进制读取方式打开文件
data = fread(fileID, Inf, 'double'); % 读取文件中的所有双精度浮点数
fclose(fileID); % 关闭文件
% 处理读取到的数据
上記のサンプルでは、’binaryfile.bin’が読み込むべきバイナリファイルのファイル名です。ファイルはfopen関数でバイナリ読み込みモードで開かれます。次に、fread関数でファイル内の全ての double 浮動小数点数が読み込まれ、読み込んだデータは変数 data に格納されます。最後にファイルは fclose 関数で閉じられます。必要に応じて、読み込まれたデータはさらに処理することができます。