Main Content

fwrite

バイナリ ファイルへのデータの書き込み

説明

fwrite(fileID,A) は、配列 A の要素を 8 ビット符号なし整数としてバイナリ ファイルに列順に書き込みます。バイナリ ファイルはファイル識別子 fileID で示されます。fopen を使用すると、このファイルを開いて fileID 値を取得できます。書き込みが終わったら、fclose(fileID) を呼び出してファイルを閉じます。

fwrite(fileID,A,precision) は、A 内の値を precision で指定された形式とサイズで書き込みます。

fwrite(fileID,A,precision,skip) は、各値を書き込む前に skip で指定されたバイト数またはビット数をスキップします。

fwrite(fileID,A,precision,skip,machinefmt) は、さらにファイルに書き込むバイトまたはビットの順序を指定します。skip 引数はオプションです。

count = fwrite(___) は、関数 fwrite が問題なくファイルに書き込んだ A の要素の数を返します。この構文では、前述の構文の入力引数のいずれかを使用できます。

すべて折りたたむ

nine.bin という名前のファイルを書き込み用に開きます。fopen を呼び出すときに 'w' を使用して書き込みアクセスを指定します。

fileID = fopen('nine.bin','w');

fopen はファイル識別子 fileID を返します。

1 ~ 9 の整数を 8 ビット符号なし整数として書き込みます。

fwrite(fileID,[1:9]);

ファイルを閉じます。

fclose(fileID);

magic5.bin という名前のファイルを書き込み用に開きます。

fileID = fopen('magic5.bin','w');

5 行 5 列の魔方陣の 25 の要素を書き込みます。引数 precision'integer*4' を使用して 4 バイトの整数を書き込みます。

fwrite(fileID,magic(5),'integer*4');

ファイルを閉じます。

fclose(fileID);

4 行 4 列の魔方陣の要素を含むバイナリ ファイルを書き込みます。倍精度浮動小数点数として格納します。

fileID = fopen('magic4.bin','w');
fwrite(fileID,magic(4),'double');
fclose(fileID);

ファイルへの追加が可能な書き込みアクセスでファイル magic4.bin を開きます。fopen を呼び出すときに、ファイル アクセス タイプ 'a' を指定します。

fileID = fopen('magic4.bin','a');

4 行 4 列のゼロの行列をファイルに追加します。その後ファイルを閉じます。

fwrite(fileID,zeros(4),'double');
fclose(fileID);

ビッグエンディアン システムで使用する目的で、myfile.bin という名前のファイルに倍精度の乱数を書き込みます。fwrite を呼び出すときに machinefmt の値を 'ieee-be' に指定して、ビッグエンディアンのバイト順を指定します。

fileID = fopen('myfile.bin','w');
fwrite(fileID,rand(4),'double','ieee-be');
fclose(fileID);

入力引数

すべて折りたたむ

ファイル識別子。fopen で取得した整数、標準出力 (画面) である 1 または標準エラーである 2 で指定します。

書き込むデータ。数値、文字または string 配列として指定します。

fwrite は文字または string データの書き込みをサポートしますが、書き込みを行うと、予期しない動作になるため、推奨されません。

fwrite を使用して文字または string データを書き込む場合は、fopen を呼び出して読み取りまたは書き込み対象のファイルを開くときにテキスト エンコードを指定し、精度を char として指定します。

例: [1,2,3;4,5,6]

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string
複素数のサポート: あり

書き込む値のクラスおよびビット単位のサイズ。精度の列内の文字ベクトルまたは string スカラーのいずれかとして指定します。

値のタイプ精度ビット (バイト)

整数、符号なし

'uint'

32 (4)

'uint8'

8 (1)

'uint16'

16 (2)

'uint32'

32 (4)

'uint64'

64 (8)

'uchar'

8 (1)

'unsigned char'

8 (1)

'ushort'

16 (2)

'ulong'

32 (4)

'ubitn'

1n64

整数、符号付き

'int'

32 (4)

'int8'

8 (1)

'int16'

16 (2)

'int32'

32 (4)

'int64'

64 (8)

'integer*1'

8 (1)

'integer*2'

16 (2)

'integer*4'

32 (4)

'integer*8'

64 (8)

'schar'

8 (1)

'signed char'

8 (1)

'short'

16 (2)

'long'

32 (4)

'bitn'

1n64

浮動小数点数

'single'

32 (4)

'double'

64 (8)

'float'

32 (4)

'float32'

32 (4)

'float64'

64 (8)

'real*4'

32 (4)

'real*8'

64 (8)

文字

'char*1'

8 (1)

'char'

MATLAB®char 型は固定サイズでなく、バイト数は、ファイルに関連付けられているエンコード スキームによって異なります。fopen を使用してエンコードを設定します。

bitn または ubitn の精度を指定した場合、fwrite は範囲外のすべての値を飽和させます。

メモ

MATLAB で NaN および Inf 値を保持するには、double または single クラスのデータを読み取りおよび書き込みします。

各値を書き込む前にスキップするバイト数。スカラーで指定します。precisionbitn または ubitn に指定した場合、ビット内に skip を指定します。

引数 skip を使用すると、固定長レコード内の不連続なフィールドにデータを挿入できます。

ファイル内にバイトを書き込む順序。次の表の文字ベクトルまたは string スカラーのいずれかとして指定します。bitn および ubitn の精度では、machinefmt はバイト内のビットを書き込む順序を指定しますが、バイトを書き込む順序はシステムのバイト順のままです。

'n' または 'native'

ご使用のシステムのバイト順 (既定)

'b' または 'ieee-be'

ビッグエンディアン順

'l' または 'ieee-le'

リトルエンディアン順

's' または 'ieee-be.l64'

ビッグエンディアン順、64 ビット長データ型

'a' または 'ieee-le.l64'

リトルエンディアン順、64 ビット長データ型

既定では、現在サポートされているすべてのプラットフォームは、新しいファイルにリトルエンディアン順を使用します。既存のバイナリ ファイルは、ビッグエンディアン順またはリトルエンディアン順のいずれも使用できます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する