matlab中num2str 將數字轉換為字符數組


參考:https://ww2.mathworks.cn/help/matlab/ref/num2str.html?searchHighlight=num2str&s_tid=doc_srchtitle

 

num2str

將數字轉換為字符數組

全頁折疊
 

說明

示例

s = num2str(A) 將數值數組轉換為表示數字的字符數組。輸出格式取決於原始值的量級。num2str 對使用數值為繪圖添加標簽和標題非常有用。

示例

s = num2str(A,precision) 返回表示數字的字符數組,最大有效位數由 precision 指定。

示例

s = num2str(A,formatSpec)formatSpec 指定的格式應用到 A 所有元素。

 

示例

全部折疊

浮點值的默認轉換

pieps 返回的浮點值轉換為字符向量。

s = num2str(pi)
s = 
'3.1416'
s = num2str(eps)
s = 
'2.2204e-16'
 
 

指定精度

指定浮點值的最大有效位數。

A = gallery('normaldata',[2,2],0);
s = num2str(A,3)
s = 2x16 char array
    '-0.433     0.125'
    ' -1.67     0.288'

 
 

指定格式

指定浮點值數組的寬度、精度及其他格式。

A = gallery('uniformdata',[2,3],0) * 9999;
s = num2str(A,'%10.5e\n')
s = 2x35 char array
    '9.50034e+03...'
    '2.31115e+03...'

格式 '%10.5e' 使用具有五個小數位數的指數格式輸出各個值,'\n' 輸出換行符。

 
 

輸入參數

全部折疊

A - 輸入數組
數值數組

輸入數組,指定為數值數組。

數據類型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
復數支持:

precision - 有效數字最大位數
正整數

輸出字符串中的有效數字最大位數,指定為正整數。

注意

如果您指定的 precision 超出輸入浮點數據類型的精度,則結果可能與您指定的精度的輸入值不匹配。結果取決於您的計算機硬件和操作系統。

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

formatSpec - 輸出字段的格式
格式化操作符

輸出字段的格式,使用格式化操作符指定。formatSpec 還可以包括普通文本和特殊字符。

formatSpec 可以是用單引號引起來的字符向量,從 R2016b 開始,也可以是字符串標量。

格式化操作符

格式化操作符以百分號 % 開頭,以轉換字符結尾。轉換字符是必需的。您也可以在 % 和轉換字符之間指定標識符、標志、字段寬度、精度和子類型操作符。(操作符之間的空格無效,在這里顯示空格只是為了便於閱讀。)

轉換字符

此表顯示了要將數值和字符數據格式化為文本的轉換字符。

值類型 轉換 詳細信息

有符號整數

%d%i

以 10 為基數

無符號整數

%u

以 10 為基數

%o

以 8 為基數(八進制)

%x

以 16 為基數(十六進制),小寫字母 af

%X

%x 相同,大寫字母 AF

浮點數

%f

定點記數法(使用精度操作符指定小數點后的位數。)

%e

指數記數法,例如 3.141593e+00(使用精度操作符指定小數點后的位數)。

%E

%e 相同,但為大寫,例如 3.141593E+00(使用精度操作符指定小數點后的位數)。

%g

更緊湊的 %e%f,不帶尾隨零(使用精度操作符指定有效數字位數。)

%G

更緊湊的 %E%f,不帶尾隨零(使用精度操作符指定有效數字位數。)

字符或字符串

%c

單個字符

%s

字符向量或字符串數組。輸出文本的類型與 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

    ' '

    在值之前插入空格。
    示例:% 5.2f

    '0'

    在值之前補零以填充字段寬度。
    例如:%05.2f

    '#'

    修改選定的數值轉換:

    • 對於 %o%x%X,將輸出 00x0X 前綴。

    • 對於 %f%e%E,即使精度為零也將輸出小數點。

    • 對於 %g%G,不刪除尾隨零或小數點。

    示例:%#5.0f

  • 字段寬度

    要輸出的最低字符數。字段寬度操作符可以是數字,也可以是指向輸入參數的星號 (*)。

    當您將 * 指定為字段寬度操作符時,其他輸入參數必須指定打印寬度和要打印的值。寬度和值可以是參數對組,也可以是數值數組中的對組。使用 * 作為字段寬度操作符時,您可以打印具有不同寬度的不同值。

    示例:輸入參數 ('%12d',intmax) 等效於 ('%*d',12,intmax)

    示例:輸入參數 ('%*d',[2 10 5 100]) 返回 '10 100',其中兩個空格分配給 10,五個空格分配給 100。您也可以將字段寬度和值指定為多個參數,如 ('%*d',2,10,5,100) 中所示。

    除非標志另行指定,否則該函數使用空格填充值之前的字段寬度。

  • 精度

    對於 %f%e%E

    小數點右側的位數
    示例:'%.4f'pi 輸出為 '3.1416'

    對於 %g%G

    有效位數
    示例:'%.4g'pi 輸出為 '3.142'

    精度操作符可以是數字,也可以是指向參數的星號 (*)。

    當您將 * 指定為字段精度操作符時,其他輸入參數必須指定打印精度和要打印的值。精度和值可以是參數對組,也可以是數值數組中的對組。使用 * 作為精度操作符時,您可以打印具有不同精度的不同值。

    *.* 指定為字段寬度和精度操作符時,必須以三元組形式指定字段寬度、精度和值。

    示例:輸入參數 ('%.4f',pi) 等效於 ('%.*f',4,pi)

    示例:輸入參數 ('%6.4f',pi) 等效於 ('%.*f',6,4,pi)

    示例:輸入參數 ('%*.*f',6,4,pi,9,6,exp(1)) 返回 '3.1416 2.718282',其中以 96 分別作為 exp(1) 輸出的字段寬度和精度。

    注意

    如果您為浮點值指定的精度操作符所表示的精度超出輸入數值數據類型的精度,則在指定精度內,結果與輸入值可能不匹配。結果取決於您的計算機硬件和操作系統。

  • 子類型

    可以使用子類型操作符將浮點值顯示為八進制、十進制或十六進制值。子類型操作符緊鄰轉換字符之前。此表顯示了可使用子類型的轉換。

    輸入值類型

    子類型和轉換字符

    輸出值類型

    浮點數

    %bx%bX
    %bo
    %bu

    雙精度十六進制、八進制或十進制值
    例如:%bxpi 輸出為 400921fb54442d18

    %tx%tX
    %to
    %tu

    單精度十六進制、八進制或十進制值
    例如:%txpi 輸出為 40490fdb

格式化操作符前或后的文本

formatSpec 還可以在百分號 % 前添加其他文本,或者在轉換字符后添加其他文本。文本可以為:

  • 要打印的普通文本。

  • 您無法作為普通文本輸入的特殊字符。此表顯示了如何在 formatSpec 中表示特殊字符。

    特殊字符

    表示形式

    單引號

    ''

    百分比字符

    %%

    反斜杠

    \\

    警報

    \a

    退格符

    \b

    換頁符

    \f

    換行符

    \n

    回車符

    \r

    水平制表符

    \t

    垂直制表符

    \v

    其 Unicode® 數值可以通過十六進制數 N 表示的字符

    \xN

    示例:sprintf('\x5A') 返回 'Z'

    其 Unicode 數值可以通過八進制數 N 表示的字符

    \N

    示例:sprintf('\132') 返回 'Z'

使用格式化操作符進行轉換時要注意的行為

  • 數值轉換僅輸出復數的實部。

  • 如果指定不適合數據的轉換(例如數值的文本轉換),MATLAB® 將改寫指定的轉換並使用 %e

    示例:'%s'pi 轉換為 3.141593e+00

  • 如果對整數值應用文本轉換(%c%s),MATLAB 會將對應於有效字符代碼的值轉換為字符。

    示例:'%s'[65 66 67] 轉換為 ABC

數據類型: char | string

輸出參數

全部折疊

s - 輸入數組的文本表示形式
字符數組

輸入數組的文本表示形式,以字符數組的形式返回。

提示

num2str 不接受 formatSpec 輸入參數中的位置標識符。例如,num2str([14 15],'%2$X %1$o) 將返回錯誤。

位置標識符指定格式化操作符處理函數的輸入參數的順序,而不是處理輸入數組的元素的順序。當您調用 num2str 時,只有一個輸入參數包含要轉換的數字。

算法

num2str 將刪除字符數組中的任何前導空格,即使 formatSpec 包含空格字符標志也是如此。例如,num2str(42.67,'% 10.2f') 返回一個 1×5 字符數組 '42.67'

擴展功能

用法說明和限制:

 

  • 輸入參數必須是常量。

 

此函數完全支持 GPU 數組。有關詳細信息,請參閱Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

另請參閱

cast | int2str | mat2str | sprintf | str2num


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM