Development Environment    

書式付きASCIIデータを読み込む

関数 fscanf は、標準C関数fscanf に類似する関数です。関数fscanf と関数fscanf は、共に、ファイルから一つの行を読み取り、1つまたはそれ以上の変数に割り当てるという互いによく似た挙動を示します。また、この2つの関数は、入力データをどのように解釈するかを制御する同一の変換設定子を使用しています。

関数 fscanf に対する変換設定子は、% キャラクタで始まります。Cと共通で、よく利用する変換設定子としては、つぎのものをあげることができます。

MATLABとCの関数fscanfは、互いに非常によく似ていますが、わずかに異なる部分も見受けられます。たとえば、つぎの内容をもつファイルmoon.dat を使って考えてみましょう。

つぎのコードは、このファイルを構成する3要素全てをMyDataと名付けられた行列に読み込みます。

このコードでは、全くループが使われていない点に注目してください。代わりに、関数fscanf は、入力の書式が、書式設定子と整合性をもつ限り、テキストの中でデータを読み続けます。

オプションで設定するサイズ引数は、読み込む要素の数を制御します。たとえば、fidが整数文字列を含む開いた状態のファイルを指示しているとしましょう。このとき、つぎのコマンドは、列ベクトルAの中に100個の整数値を読み込みます。

つぎのラインは、100個の整数値を10行10列Aに読み込みます。

関数fscanfに関連する関数 sscanfは、ファイルではなく文字列から読み込みを行います。たとえば、つぎのラインは、2と平方根からなる列ベクトルを出力します。


 テキストファイルから文字列を1行ずつ読み込む 書式付きテキストファイルを書き込む