| MATLAB Function Reference | ![]() |
Syntax
[s,errmsg] = sprintf(format,A,...)
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)
下列表格敘述在格式給定字串(format specification string)中使用的非字母(nonalphanumeric)字元。
本表格列出您會在〔格式化說明(specification)〕中用來給定〔非列印〕(non-printing)字元的〔脫逸字元〕。
Remarks
sprintf函數的操作模式和 ANSI C 語言中的同名(namesake)函數相像,但卻有以下這些例外和擴充。
(補充說明:同名(namesake)的意思是說名字相同的兩個東西。)
sprintf去轉換一個MATLAB 倍精準度(double)的資料到整數(integer)型態去,而這個倍精準度的資料又包含了一個整數無法表示的值 (像是:其中包含了分數),MATLAB 將不採理(ignores)這種的給定轉換(specified conversion),並且將值以指數格式輸出。想要成功地執行這種轉換,必須要使用 fix 、 floor 、 ceil 或是 round 等函數,將倍精準度的值在傳入 sprintf 函數以前轉換成整數可以表示的值。%o 、 %u 、 %x 和 %X 支援下列非標準(non-standard)子屬性給定符號(subtype specifiers)。b |
在C的資料型式中,〔倍精準度〕比〔不包含正負的整數〕優先被考慮。舉例來說,列印一個十六進位倍精準度的值,使用這樣的格式:'%bx'。 |
| t |
在C的資料型式中,〔浮點〕比〔不包含正負的整數〕資料型式先被優先考慮。 |
sprintf函數會將非倍數(nonscalar)參數向量化(vectorized)。本函數將會對A中的元素(一列為一個循環(columnwise))重複使用格式化字串,直到元素用盡。這個函數會繼續對任何陣列外加的參數進行相似的動作。(補充說明:其格式字串會套在矩陣A的列中,一列做完再對下一列進行轉換。)Examples
See Also
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 |