MATLAB Function Reference    
sprintf

データを書式付きで文字列に書き出し

表示

詳細

s = sprintf(format,A,...) は、行列 A (と任意の追加的な行列引数)のデータを、指定した文字列format の制御により書式化し、MATLAB 文字列変数 s に出力します。sprintf は、ファイルの代わりに文字列にデータを出力する点を除けば、fprintf と同じです。

文字列 format は、表記法、整列、有効桁数、フィールド幅、および他の出力書式を設定します。下図のように、通常のアルファベット文字と数字、エスケープ文字、変換指定子、その他のキャラクタを指定します。

[s,errrmsg] = sprintf(format,A,...) は、エラーが起きたときはエラーメッセージ文字列 errmsg を、エラーが起きなかったときは空行列を出力します。

注意

関数 sprintf は、つぎに記述されるある例外と拡張子を除いて、ANSI C 言語の sprintf() と同様な挙動を示します。

つぎの非標準の補助指定子が、変換指定子 %o, %u, %x, %X でサポートされています。
b
C のデータタイプは、符号なしの整数ではなく、倍精度です。たとえば、16進法で表された倍精度値を印刷するには、つぎの '%bx' フォーマットを使用します。

t
C データタイプは、符号なしの整数でなく、浮動小数点数です。
入力行列 A がスカラでない場合、sprintf は、ベクトル化されます。

フォーマット文字列は、すべての要素が使用されるまで、Aの(列方向)要素を巡回的に使用します。任意の行列引数を使って、再初期化されないで、同様な方法で、巡回されます。

つぎの表は、フォーマット設定文字列で使われる非アルファベットのキャラクタを記述しています。

エスケープ文字

キャラクタ
詳細
\b
バックスペース
\f
フォームフィード
\n
ニューライン
\r
キャレッジリターン
\t
水平タブ
\\
バックスラッシュ

\''、または、''

(2つのシングルコート)

シングルコーテッションマーク
%%
パーセントキャラクタ

変換指定子

出力の記法に対して設定する変換キャラクタ

指定子
詳細
%c
シングルキャラクタ
%d
10進法(符号付き)
%e
指数記法(3.1415e+00 のように、小文字の e を使用)
%E
指数記法(3.1415E+00のように、大文字の E を使用)
%f
固定小数点記法
%g
参考文献 [2] で定義されている %e、または、%f のよりコンパクト型。不必要なゼロを印刷しません。
%G
%g と同じですが、大文字 E を使用
%o
8進記法 (符号なし)
%s
キャラクタの文字列
%u
10進法 (符号なし)
%x
16進記法 (小文字 a-f を使用)
%X
16進記法 (大文字 A-F を使用)

他のキャラクタ

他のキャラクタは、% と変換キャラクタの間の¥に、挿入される場合があります。

キャラクタ
詳細
例題
ナイナス符号 (-)
変換された引数をフィールド内で左寄せ
%-5.2d
プラス符号 (+)
常に、符号 (+、または、-) を表示します。
%+5.2d
ゼロ (0)
スペースではなく、ゼロで文字列を埋める
%05.2d
桁数 (フィールド幅)
印刷する最小の桁数を指定する文字列
%6f
桁数 (精度)
小数点の右側に表示する桁数を指定するピリオド(.)を含む桁数の文字列
%6.2f

例題

コマンド
結果
sprintf('%0.5g',(1+sqrt(5))/2)
1.618
sprintf('%0.5g',1/eps)
4.5036e+15
sprintf('%15.5f',1/eps)
4503599627370496.00000
sprintf('%d',round(pi))
3
sprintf('%s','hello')
hello
sprintf('The array is %dx%d.',2,3)
The array is 2x3
sprintf('\n')
Line termination character on all platforms

参考

int2str, num2str, sscanf

参考文献

[1] Kernighan, B.W. and D.M. Ritchie, The C Programming Language, Second Edition, Prentice-Hall, Inc., 1988.

[2] ANSI specification X3.159-1989: "Programming Language C," ANSI, 1430 Broadway, New York, NY 10018.


 sprandsym spy