MATLAB Function Reference    
fopen

ファイルをオープンしたり、オープンしているファイルに関する情報を得ます。

表示

詳細

fid = fopen(filename) は、ファイル filename を読むために、オープンします(PC 上で、fopen は、バイナリリードアクセスのためにファイルをオープンします)。

filename は、MATLABPATH 相対部分パス名でも構いません。ファイルが、読み取り用にオープンされていて、カレントワーキングディレクトリ内に発見できない場合、fopen は、下位の MATLAB サーチパスを探索します。

fid は、スカラ MATLAB 整数で、ファイル識別子と言われます。fid は、他のファイル入力/出力ルーチンに最初の引数として使用します。fopen がファイルをオープンできない場合、-1 が戻ります。

fid = fopen(filename,permission) は、permission で指定したモードで、ファイル filename をオープンします。permission には、つぎの値を設定することができます。

'r'
読み取り用にファイルをオープン(デフォルト)
'w'
書き込み用のファイルをオープンするか、または、新しいファイルを作成します。必要ならば、存在する内容を削除します。
'a'
書き込み用にファイルをオープンするか、または、新しいファイルを作成します。データをファイルの最後に付加します。
'r+'
読み書き用にファイルをオープンします。
'w+'
読み書き用にファイルをオープンしたり、新しいファイルを作成します。必要ならば、存在する内容を削除します。
'a+'
書き込み用のファイルをオープンしたり、新しいファイルを作成します。データをファイルの最後に付加します。
'A'
自動的なフラッシングなしに付加。テープドライブと共に使用します。
'W'
自動的なフラッシングなしに書き込み。テープドライブと共に使用します。

ファイルは、バイナリモード、または、テキストモードのいずれかでオープンされます。テキストモードで、fopen は、入力上でラインセパレータを削除し、出力用にそれを加えます。バイナリモードでは、ラインセパレータは、削除されず、また付加もされません。 fopen は、デフォルトは、バイナリモードでファイルをオープンします。しかし、パミッション文字列のいずれかに 'b' を付加することで、バイナリモードを指定することができます。たとえば、バイナリリードアクセス用にファイルをオープンするには、'rb'を指定します。テキストモードで、ファイルをオープンするには、パミッション文字列に 't' を付加します。たとえば、'rt'です。PC 上では、テキストとバイナリを区別する必要があります。UNIX システムでは、テキストとバイナリを区別する必要がありません。

[fid,message] = fopen(filename,permission) は、上で記述したようにファイルをオープンします。ファイルをオープンできない場合、fid は、-1 になり、message は、システムに依存したエラーメッセージを含んでいます。fopen が、ファイルのオープンに成功すると、message は、空になります。

[fid,message] = fopen(filename,permission,format) は、上で記述したようにファイルをオープンします。format は、freadを使って、ファイルから読み込んだデータの数値フォーマットを定義する文字列であるか、または、fwrite を使って、ファイルに書き込んだデータの数値フォーマットを定義する文字列です。format には、つぎのいずれかの値を使用できます。

'cray' or 'c'

big-endian バイト順をもつ Cray の浮動小数点

'ieee-be' or 'b'

big-endian バイト順をもつIEEE 浮動小数点

'ieee-le' or 'l'

little-endian バイト順をもつIEEE 浮動小数点

'ieee-be.l64' or 's'

big-endian バイト順と64バイトのロングデータタイプをもつIEEE 浮動小数点

'ieee-le.l64' or 'a'

little-endian バイト順と64バイトのロングデータタイプをもつIEEE 浮動小数点

'native' or 'n'

MATLAB が実行しているマシンの数値フォーマット(デフォルト)

'vaxd' or 'd'

VAX D 浮動小数点と VAX 配列

'vaxg' or 'g'

VAX G 浮動小数点と VAX 配列

引数 format を省略すると、fread、または、fwrite は、ローカルマシンの数値フォーマットを使います。fread、または、fwrite をコールするとき、fopenへのコールで指定した数値フォーマットを書き換えることができます。

fids = fopen('all') は、すべてのオープンしているファイルのファイル識別子を含む行ベクトルを戻します。しかし、その中には、(標準出力と標準エラーをそれぞれ示す)12 を含んではいません。 ベクトルの中の要素数は、オープンしているファイルの数と同じです。

[filename,permission,format] = fopen(fid) は、指定したファイルに関連したフルファイル名filenamepermissionformatを出力します。正しくない fid は、すべての出力引数に対して、空文字列を出力します。permissionformat は、共にオプションです。

2つの fid は、前もって定義され、明示的に、オープンやクローズできません。

1
標準出力。これは、付加作業用に常にオープンしています(permission'a'に設定)。
2
標準誤差、これは、付加作業用に常にオープンしています。 (permission'a'に設定)。

例題

例題は、fopen を使って、ファイルをオープンし、fopenにより戻されるfidをファイルからデータを読む他のファイル I/O 関数に渡し、そして、ファイルをクローズします。

参考

fclose, ferror, fprintf, fread, fscanf, fseek, ftell, fwrite


 fminsearch fopen (serial)