Development Environment | ![]() ![]() |
書式付きテキストファイルを書き込む
関数fprintf
は、データをキャラクタ文字列に変換し、スクリーン、または、ファイルに出力します。どのような書式で出力するかは、変換設定子とオプションのテキスト文字から構成される書式制御文字列により指定します。変換設定子は、配列要素の出力を制御します。関数 fprintf
は、テキストについては、そのままコピーして出力します。
%e
:指数表示%f
:固定小数点表示%g
:指数表示と固定小数点表示のいずれか長さが短い方を自動的に選択、出力します。書式設定子にオプションで設定されるフィールドを使うと、最小の桁数と精度を制御することができます。たとえば、つぎのコードは、指数関数を短い長さで表示した表からなるテキストファイルを作成します。
x = 0:0.1:1; y = [x; exp(x)];
つぎのコードは、x
と y
を新しく作成されたファイルexptable.txt
に書き込みます。
fid = fopen('exptable.txt','w'); fprintf(fid,'Exponential Function\n\n'); fprintf(fid,'%6.2f %12.8f\n',y); status = fclose(fid);
関数 fprintf
の1回目の実行で、タイトルを出力し、2度の改行を行います。2回目の実行では、数値のテーブルを出力します。書式制御文字列は、テーブルの各行の書式を、つぎのように指定します。
関数fprintf
は、配列y
の要素を列順に変換します。この関数は、全ての配列要素を変換するまで繰り返し書式文字列を使用します。
ここで、指数データファイルを読み込むために、関数fscanf
を使用します。
fid = fopen('exptable.txt','r'); title = fgetl(fid); [table,count] = fscanf(fid,'%f %f',[2 11]); table = table'; status = fclose(fid);
2行目でファイルタイトルを読み込みます。3行目では、ファイルの終わりに達するまで、各行に2つの浮動小数点値が格納されている数値テーブルを読み込みます。関数 count
は、整合する数値の数を出力します。
関数fprintf
に関連した関数sprintf
は、ファイルではなくスクリーン上に文字列を出力します。使用例は、つぎのとおりです。
root2 = sprintf('The square root of %f is %10.8e.\n',2,sqrt(2));
![]() | 書式付きASCIIデータを読み込む | ファイルのクローズ | ![]() |