14.2.16 バイナリI/O
fread Octave は、同じ名前の標準 C 関数を模倣した関数とを使用してバイナリ データを読み書きできますfwrite。これらの関数は、データの読み取り時に整数データのバイト順序を自動的に入れ替え、サポートされている浮動小数点形式間で変換できます。
: val = fread (fid)
: val = fread (fid, size)
: val = fread (fid, size, precision)
: val = fread (fid, size, precision, skip)
: val = fread (fid, size, precision, skip, arch)
: [val, count] = fread (…)
ファイル記述子fidで指定されたファイルからバイナリ データを読み取ります。
オプション引数sizeは、読み取るデータの量を指定します。
Inf
可能な限り読み取り、列ベクトルを返します。
nr
最大nr個の要素を読み取り、列ベクトルを返します。
[nr, Inf]
可能な限り読み取り、nr行の行列を返します。読み取られた要素の数がnrの正確な倍数でない場合は、最後の列にゼロが埋め込まれます。
[nr, nc]
要素まで読み取り、 nr行の行列を返します 。読み取られた要素数がnrの正確な倍数でない場合は、最後の列にゼロが埋め込まれます。 nr * nc
サイズが省略された場合は、 の値Infが想定されます。
オプション引数の精度は、読み取るデータのタイプを指定する文字列であり、次のいずれかになります。
"uint8"(デフォルト)
8 ビットの符号なし整数。
"int8"
"integer*1"
8 ビットの符号付き整数。
"uint16"
"ushort"
"unsigned short"
16 ビットの符号なし整数。
"int16"
"integer*2"
"short"
16 ビットの符号付き整数。
"uint"
"uint32"
"unsigned int"
"ulong"
"unsigned long"
32 ビットの符号なし整数。
"int"
"int32"
"integer*4"
"long"
32 ビットの符号付き整数。
"uint64"
64 ビットの符号なし整数。
"int64"
"integer*8"
64 ビットの符号付き整数。
"single"
"float"
"float32"
"real*4"
32 ビット浮動小数点数。
"double"
"float64"
"real*8"
64 ビット浮動小数点数。
"char"
"char*1"
8 ビットの単一文字。
"uchar"
"unsigned char"
8 ビットの符号なし文字。
"schar"
"signed char"
8 ビットの符号付き文字。
デフォルトの精度は です"uint8"。
精度引数には、オプションで繰り返し回数を指定することもできます。たとえば、'32*シングル' はfread、32 個の単精度浮動小数点数のブロックを読み取ります。ブロックでの読み取りは、skip引数と組み合わせて使用すると便利です。
精度引数は型変換も指定できます。たとえば、'int16=>int32' はfread16 ビット整数値を読み取り、32 ビット整数値の配列を返します。デフォルトでは、fread倍精度配列を返します。特別な形式 '*タイプ' は ' の省略形ですタイプ=>タイプ'。
変換回数と繰り返し回数は組み合わせることもできます。たとえば、次の指定は32*シングル=>シングル' は、fread単精度浮動小数点値のブロックを読み取り、倍精度値のデフォルトの配列ではなく、単精度値の配列を返します。
オプションの引数skip は、各要素 (または要素のブロック) を読み取った後にスキップするバイト数を指定します。指定しない場合は、値 0 が想定されます。最後のブロックの読み取りが完了していない場合、最後の skip は省略されます。たとえば、
fread (f, 10, "3*シングル=>シングル", 8)
最後の読み取りは 3 つの値の完全なブロックではないため、最後の 8 バイトのスキップは省略されます。
オプション引数archは、ファイルのデータ形式を指定する文字列です。有効な値は次のとおりです。
"native"または"n"
現在のマシンのフォーマット。
"ieee-be"または"b"
IEEE ビッグエンディアン。
"ieee-le"または"l"
IEEE リトルエンディアン。
archが指定されていない場合はfopen、ファイル記述子を作成した の 呼び出しで使用された値が使用されます。それ以外の場合は、 で指定された値freadが の値を上書きしfopen、データ形式を決定します。
出力引数valには、ファイルから読み取られたデータが含まれます。
オプションの戻り値count には、読み取られた要素の数が含まれます。
See also: fwrite, fgets, fgetl, fscanf, fopen.
: count = fwrite (fid, data)
: count = fwrite (fid, data, precision)
: count = fwrite (fid, data, precision, skip)
: count = fwrite (fid, data, precision, skip, arch)
ファイル記述子fidで指定されたファイルにバイナリ形式でデータを書き込みます 。
引数データは、ファイルに書き込まれる値のマトリックスです。値は列優先の順序で抽出されます。
残りの引数precision、skip、およびarch はオプションであり、 で説明されているように解釈されますfread。
出力カウントは、正常に書き込まれたデータ項目の数です。
プログラミング ノート:データfwrite内の値が 大きすぎて指定された精度に収まらない 場合、の動作は未定義になります。
See also: fread, fputs, fprintf, fopen.