(translator=Szuwei, ChineseSource=Szuwei-20020510-12\sprintf.html, EnglishSource=c:\matlabr12\help\techdoc\ref\sprintf.html)
MATLAB Function Reference    
sprintf

寫出(列印)格式化的資料到字串。

Syntax

Description

[s,errmsg] = sprintf(format,A,...)利用給定的字串format來控制,陣列A中其資料格式化的方式(同時包含任何額外的陣列參數),並且將結果傳回到MATLAB的字串變數s。當sprintf函數產生錯誤的時候,會傳回錯誤訊息字串errmsg。如果沒有任何錯誤發生errmsg是一個空的陣列。

sprintf基本上和fprintf是一樣的,只是本函數將資料傳回到MATLAB中的變數,而不是傳到檔案上。

Format String

參數format是一個字串,包含了C語言的轉換敘述(Conversion Specification)。而所謂的轉換敘述(Conversion specifications)可以控制符號、排列、有正負號(significant)的數字、欄位長度、和其他不同觀念(aspect)和不同型態的輸出格式。格式化字串(Format String)可以包含所謂的脫逸字元,以表示無法列印出來的字元像是換行字元(newline characters)和間隔(tabs)。

轉換敘述必須利用字元%作為起始,同時包含以下選擇性(optional)和必要(required)的元素(elements)或屬性:

你可以以下列的的順序去給定這些元素:

Flags(旗標)

你可以使用旗標(選擇性)這元素來控制輸出的排列(alignment)方式。

字元(Character)
描述(Description)
範例(Example)
負號(-
將轉換後的參數向欄位的左邊做對齊(Left-justifies)的動作。
%-5.2d
正號(+
永遠印出正負符號(+ or -)(sign character)。
%+5.2d
零(0
墊個零在這裡總比空白好吧!?
%05.2d

Field Width and Precision Specifications(欄位寬度和精確度)

你可以藉由在格式化字串中包含這個選項,去控制格其輸出欄位的寬度和準確度。

字元(Character)
描述(Description)
範例(Example)
欄位寬度(Field width)
一個數字字串,去給定最少將被列印出的字元位數為多少。
%6f
精確度(Precision)
一個包含一個句號(.)的數字字串,給定小數點之後會有幾位數將被列印。
%6.2f

轉換字元(Conversion Characters)

轉換字元給定了輸出時所使用的符號表示法。

給定符號(Specifier)
描述(Description)
%c
單一字元。
%d
十進位符號表示法(包含正負號)。
%e
指數符號表示法(使用小寫的e作為表示,如3.1415e+00)。
%E
指數符號表示法(使用大寫的E作為表示,如3.1415E+00)。
%f
定點(Fixed-point)符號表示法。
%g
%e%f更有通盤性,和[2]中定義的一樣。微不足道(Insignificant)的零將不被列印。
%G
%g一樣, 但使用大寫的E
%o
八進位符號表示法(不具正負號)。
%s
字串符號表示法。
%u
十進位符號表示法(不具正負號)。
%x
十六進位符號表示法(使用小寫的a-f)。
%X
十六進位符號表示法(使用大寫的A-F)。

下列表格敘述在格式給定字串(format specification string)中使用的非字母(nonalphanumeric)字元。

脫逸字元(Escape Characters)

本表格列出您會在〔格式化說明(specification)〕中用來給定〔非列印〕(non-printing)字元的〔脫逸字元〕。

字元(Character)
描述(Description)
\b
退後(Backspace)
\f
餵入表格(Form feed)
\n
換行(New line)
\r
回到行首(Carriage return)
\t
水平間隔(Horizontal tab)
\\
斜線(Backslash)

\'' or ''

(兩個單引號)

單引號標誌(Single quotation mark)
%%
百分比字元(Percent character)

Remarks

sprintf函數的操作模式和 ANSI C 語言中的同名(namesake)函數相像,但卻有以下這些例外和擴充。
(補充說明:同名(namesake)的意思是說名字相同的兩個東西。)

Examples

指令(Command)
結果(Result)
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)
這個陣列是 2x3
sprintf('\n')
在所有平台上的一行(Line)的終結字元(termination character)

See Also

int2str, num2str, sscanf

References

[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

中文翻譯對照
轉換敘述conversion specifications
格式format
格式化字串format string
換行字元newline
間隔tabs
選擇性optional
必要性required
元素element
旗標Flag
欄位field
精確度precision
寬度width
一個子屬性給定符號A subtype specifier
轉換conversion
排列alignment
向左靠齊Left-justifies
正負號sign character
給定符號Specifier
定點Fixed-Point
微不足道Insignificant
非字母nonalphanumeric
非列印non-printing
退後Backspace
餵入表格Form feed
非標準non-standard
子屬性subtype
非倍數nonscalar
一列為一個循環、列為導向columnwise