10-4%20%A6r%A6%EA%A1B%BC%C6%AD%C8%BBP%B0%7D%A6C%AA%BA%C2%E0%B4%AB

int2str 指令可將整數型態的資料轉換成字串資料,例如:

Example 1: 10-字元與字串/string401.mx = 13462; y = int2str(x) % 將整數型態的資料轉換成字串資料 length(y) % 檢視 y 的長度 y = 13462 ans = 5

在上例中,原先變數 x 儲存一個整數 13862,int2str 指令將其轉換成一個字串 "13462",其長度為 5 個字元。

若要將實數轉為字串,可用 num2str 指令,例如:

Example 2: 10-字元與字串/string402.mstr1 = num2str(pi) % 實數轉為字串,預設有效位數是 4 位 str2 = num2str(pi, 10) % 增加小數以下有效位數到 10 位 str1 = 3.1416 str2 = 3.141592654

int2str 及 num2str 常用於標示座標點的值,例如:若要在y = sin(x) 的圖形上,標出當 x = 2.5 的座標值,可輸入如下:

Example 3: 10-字元與字串/string403.mx = 0:0.1:2*pi; y = sin(x); plot(x,y) str = ['\leftarrow (', num2str(2.5), ', ', num2str(sin(2.5)), ')']; text(2.5, sin(2.5), str)

dec2hex 指令可將 10 進位數值資料轉換成 16 進位的字串表示法,例如:

Example 4: 10-字元與字串/string404.mx = 1026; y = dec2hex(x) y = 402

請注意在上例中,變數 x 儲存資料型態為數值,而變數 y 儲存資料型態為字串。類似的指令還有 hex2num、hex2dec、dec2hex、bin2dec、dec2bin、 base2dec 等,請用 help 指令查閱其各自使用語法的詳細說明,在此不再贅述。

mat2str 指令可將矩陣轉換為字串,此字串若再經由 eval 指令的使用,可再變回原先的矩陣,例如:

Example 5: 10-字元與字串/string405.mA = [1 2 1; 3 5 6 ]; B = mat2str(A) % 將矩陣 A 轉成字串 B A2 = eval(B); % 再將字串 B 轉回矩陣 A2 isequal(A, A2) % 測試 A 和 A2 是否相等 B = [1 2 1;3 5 6] ans = 1

在上例中, mat2str 指令已將為 2×3 的數值矩陣 A 轉換,變成二維字串陣列 B,然後再對此二維字串陣列 B 使用 eval 指令,產生一個與轉換前的矩陣 A 相同內容的矩陣 A2。

sprintf 指令可結合數值或字串,以產生新字串,例如:

Example 6: 10-字元與字串/string406.mstr = '圓周率'; newString = sprintf('「%s」是 %g', str, pi) newString = 「圓周率」是 3.14159

其中 %s 代表印出字串,%g 代表印出數值,亦可使用 %f 或加上控制印出位數大小的數字等,以精確的控制產生的字串格式,詳情請查閱 help sprintf 的說明。

sscanf 可依給定的格式來解析出所要的字串或數值,例如:

Example 7: 10-字元與字串/string407.mstr = '2 4.7 5.2'; mat = sscanf(str, '%f') mat = 2.0000 4.7000 5.2000

Hint
sprintf 和 sscanf 所用的格式控制方式均和 C 語言中的 printf 和 scanf 相當一致。


MATLAB程式設計:入門篇