出力フィールドの書式。書式演算子を使用して指定します。formatSpec には通常のテキストおよび特殊文字を含めることもできます。
formatSpec に \n などのエスケープ文字を表すリテラル テキストが含まれる場合、sprintf はエスケープ文字を変換します。
formatSpec には、一重引用符で囲まれた文字ベクトルか、R2016b 以降では string スカラーを指定できます。
書式演算子
書式演算子はパーセント記号 % で始まり、変換文字で終わります。変換文字は必須です。オプションとして、% と変換文字の間に識別子、フラグ、フィールド幅、精度およびサブタイプ演算子を指定できます (ここでは読みやすいようにスペースが表示されていますが、実際には演算子の間にスペースは使用できません)。
変換文字
次の表では、数値データおよび文字データをテキストとして書式設定するための変換文字を説明します。
値のタイプ変換詳細整数、符号付き%d または %i基数 10
整数、符号なし%u基数 10
%o基数 8 (8 進法)
%x基数 16 (16 進法)、小文字 a–f
%X%x と同じ、大文字 A–F
浮動小数点数%f固定小数点表記 (小数点以下の桁数の指定には精度演算子を使用)
%e3.141593e+00 などの指数表現 (小数点以下の桁数の指定には精度演算子を使用)
%E%e と同じだが、3.141593E+00 のように大文字 (小数点以下の桁数の指定には精度演算子を使用)
%g%e または %f をコンパクトにしたもので、後続のゼロなし (有効桁数の指定には精度演算子を使用)
%G%E または %f をコンパクトにしたもので、後続のゼロなし (有効桁数の指定には精度演算子を使用)
文字または文字列%c単一の文字
%s文字ベクトルまたは string 配列。出力テキストのタイプは formatSpec のタイプと同じです。
オプションの演算子
オプションの識別子、フラグ、フィールド幅、精度およびサブタイプ演算子は、出力テキストの書式をさらに細かく定義します。
識別子
関数の入力引数の処理順序。構文 n$ を使用します。ここで、n は関数呼び出し内の他の入力引数の位置を表します。
例: ('%3$s %2$s %1$s %2$s','A','B','C') は入力引数 'A'、'B'、'C' を C B A B として出力します。
メモ: 入力引数が配列の場合、識別子を使用してその入力引数の特定の配列要素を指定することはできません。
フラグ
'–'左揃えします。
例: %-5.2f
例: %-10s
'+'常に数値の符号文字 (+ または –) を出力します。
例: %+5.2f
テキストを右揃えします。
例: %+10s
' '値の前にスペースを 1 つ挿入します。
例: % 5.2f
'0'値の前にゼロを入れてフィールド幅をパディングします。
例: %05.2f
'#'選択した数値変換を次のように変更します。
%o、%x、または %X の場合は、接頭辞 0、0x、または 0X を出力します。
%f、%e、または %E の場合は、精度が 0 であっても小数点を出力します。
%g または %G の場合は、後続のゼロまたは小数点を削除しないでください。
例: %#5.0f
フィールド幅
出力する最小文字数。フィールド幅演算子は、数字、あるいは入力引数を参照するアスタリスク (*) にすることができます。
フィールド幅演算子として * を指定する場合、他の入力引数は出力される幅と値の両方を提供しなければなりません。幅と値は引数のペア、または数値配列内のペアにすることができます。フィールド幅演算子として * を使用すると、さまざまな値をさまざまな幅で出力できます。
例:入力引数 ('%12d',intmax) は ('%*d',12,intmax) と等価です。
例:入力引数 ('%*d',[2 10 5 100]) は '10 100' を返します。このとき、10 には 2 つのスペース、100 には 5 つのスペースが割り当てられます。あるいは、フィールドの幅と値を ('%*d',2,10,5,100) のように複数の引数として指定することもできます。
フラグで特に指定されていない限り、この関数は値の前にスペースを追加してフィールド幅までパディングします。
精度
%f、%e または %E小数点以下の桁数
例:'%.4f' は pi を '3.1416' と出力します
%g または %G有効桁数
例: '%.4g' は pi を '3.142' と出力します。
精度演算子は、数字、あるいは引数を参照するアスタリスク (*) にすることができます。
フィールド精度演算子として * を指定する場合、他の入力引数は出力される精度と値の両方を提供しなければなりません。精度と値は引数のペア、または数値配列内のペアにすることができます。精度演算子として * を使用すると、さまざまな値をさまざまな精度で出力できます。
フィールド幅と精度演算子として *.* を指定する場合、フィールド幅、精度、値を 3 成分として指定しなければなりません。
例:入力引数 ('%.4f',pi) は ('%.*f',4,pi) と等価です。
例:入力引数 ('%6.4f',pi) は ('%.*f',6,4,pi) と等価です。
例:入力引数 ('%*.*f',6,4,pi,9,6,exp(1)) は、'3.1416
2.718282' を返します。ここで、9 および 6 は exp(1) の出力のフィールド幅と精度です。
メモ
浮動小数点値の精度演算子を入力の数値データ型の精度より大きい値に指定すると、入力値の精度が指定の精度にならない場合があります。結果はコンピューターのハードウェアとオペレーティング システムによって異なります。
サブタイプ
サブタイプ演算子を使用して、浮動小数点値を 8 進数、10 進数または 16 進数の値として出力できます。サブタイプ演算子は、変換文字の直前に指定します。次の表では、サブタイプを使用できる変換を示します。
入力値の型サブタイプと変換文字出力値の型浮動小数点数%bx または %bX
%bo
%bu16 進数、8 進数または 10 進数の倍精度値
例: %bx は pi を 400921fb54442d18 と出力します
%tx または %tX
%to
%tu16 進数、8 進数または 10 進数の単精度値
例: %tx は pi を 40490fdb と出力します
書式演算子の前後のテキスト
formatSpec では、パーセント記号 % の前や、変換文字の後に追加のテキストを含めることができます。次のテキストを追加できます。
出力する通常のテキスト。
通常のテキストとして入力できない特殊文字。次の表では、formatSpec で特殊文字を表す方法を説明します。
特殊文字表現一重引用符''
パーセント文字%%
バックスラッシュ\\
アラーム\a
バックスペース\b
フォーム フィード\f
改行\n
キャリッジ リターン\r
水平タブ\t
垂直タブ\v
Unicode® 数値を 16 進数 N で表現できる文字\xN
例:sprintf('\x5A') は 'Z' を返します。
Unicode 数値を 8 進数 N で表現できる文字\N
例:sprintf('\132') は 'Z' を返します。
書式演算子を使用した変換動作の注意点
数値変換は複素数の実数部のみを出力します。
数値のテキスト変換など、データに適さない変換を指定すると、MATLAB® は指定した変換をオーバーライドし、%e を使用します。
例: '%s' は、pi を 3.141593e+00 に変換します。
整数値にテキスト変換 (%c または %s) を適用する場合、MATLAB は有効な文字コードに対応する値を文字に変換します。
例: '%s' は、[65 66 67] を ABC に変換します。