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 |