fwrite
バイナリ ファイルへのデータの書き込み
構文
説明
count = fwrite(___)
は、関数 fwrite
が問題なくファイルに書き込んだ A
の要素の数を返します。この構文では、前述の構文の入力引数のいずれかを使用できます。
例
uint8 データのバイナリ ファイルへの書き込み
nine.bin
という名前のファイルを書き込み用に開きます。fopen
を呼び出すときに 'w'
を使用して書き込みアクセスを指定します。
fileID = fopen('nine.bin','w');
fopen
はファイル識別子 fileID
を返します。
1 ~ 9 の整数を 8 ビット符号なし整数として書き込みます。
fwrite(fileID,[1:9]);
ファイルを閉じます。
fclose(fileID);
4 バイトの整数のバイナリ ファイルへの書き込み
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);
入力引数
fileID
— ファイル識別子
整数 | 1 | 2
ファイル識別子。fopen
で取得した整数、標準出力 (画面) である 1
または標準エラーである 2
で指定します。
A
— 書き込むデータ
数値配列 | 文字配列 | string 配列
書き込むデータ。数値、文字または 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
複素数のサポート: あり
precision
— 書き込む値のクラスおよびサイズ
'uint8'
(既定値) | 文字ベクトル | string スカラー
書き込む値のクラスおよびビット単位のサイズ。精度の列内の文字ベクトルまたは string スカラーのいずれかとして指定します。
値のタイプ | 精度 | ビット (バイト) |
---|---|---|
整数、符号なし |
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
整数、符号付き |
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
浮動小数点数 |
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
文字 |
|
|
| MATLAB® |
bit
または n
ubit
の精度を指定した場合、n
fwrite
は範囲外のすべての値を飽和させます。
メモ
MATLAB で NaN
および Inf
値を保持するには、double
または single
クラスのデータを読み取りおよび書き込みします。
skip
— スキップするバイト数
0 (既定値) | スカラー
各値を書き込む前にスキップするバイト数。スカラーで指定します。precision
を bit
または n
ubit
に指定した場合、ビット内に n
skip
を指定します。
引数 skip
を使用すると、固定長レコード内の不連続なフィールドにデータを挿入できます。
machinefmt
— 書き込むバイトの順序
'n'
(既定値) | 'b'
| 'l'
| 's'
| 'a'
ファイル内にバイトを書き込む順序。次の表の文字ベクトルまたは string スカラーのいずれかとして指定します。bit
および n
ubit
の精度では、n
machinefmt
はバイト内のビットを書き込む順序を指定しますが、バイトを書き込む順序はシステムのバイト順のままです。
| ご使用のシステムのバイト順 (既定) |
| ビッグエンディアン順 |
| リトルエンディアン順 |
| ビッグエンディアン順、64 ビット長データ型 |
| リトルエンディアン順、64 ビット長データ型 |
既定では、現在サポートされているすべてのプラットフォームは、新しいファイルにリトルエンディアン順を使用します。既存のバイナリ ファイルは、ビッグエンディアン順またはリトルエンディアン順のいずれも使用できます。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
精度引数は定数でなければなりません。
精度型の
'long'
、'ulong'
、'unsigned long'
、'bit
、n
''ubit
はサポートされません。n
'マシン形式 (バイトを書き込む順序) の入力引数はサポートされません。
精度が
int
などの C の型である場合、その型のターゲットと量産サイズは以下でなければなりません。一致する。
MATLAB 整数型に直接マッピングする。
char
型は符号付き 8 ビット整数として扱います。0 ~ 127 の値のみを使用できます。ファイルに追加する場合や skip 引数を使用する場合は、C の実行時関数
fseek
はファイルの末尾を越えて探索し、書き込まれていないバイトを 0 に初期化できなければなりません。この動作は、POSIX® および Windows® の動作と一致します。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2006a より前に導入R2022b: スレッドベースの環境での関数の使用
この関数はスレッドベースの環境をサポートしています。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)