大家好,欢迎来到IT知识分享网。
目录
num2str函数的功能是将数字转换为字符数组。
语法
s = num2str(A) s = num2str(A,precision) s = num2str(A,formatSpec)
说明
s = num2str(A) 将数值数组转换为表示数字的字符数组。输出格式取决于原始值的量级。num2str 对使用数值为绘图添加标签和标题非常有用。
s = num2str(A,precision)返回表示数字的字符数组,最大有效位数由 precision 指定。
s = num2str(A,formatSpec) 将 formatSpec 指定的格式应用到 A 所有元素。
示例
浮点值的默认转换
将 pi 和 eps 返回的浮点值转换为字符向量。
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’ 输出换行符。
格式化操作符
格式化操作符以百分号 % 开头,以转换字符结尾。转换字符是必需的。也可以在%和转换字符之间指定标识符、标志、字段宽度、精度和子类型操作符。(操作符之间的空格无效,在这里显示空格只是为了便于阅读。)
                                                  
转换字符
此表显示了要将数值和字符数据格式化为文本的转换字符。
| 值类型 | 转换 | 详细信息 | 
|---|---|---|
| 
 有符号整数  | 
 %d 或 %i  | 
 以 10 为基数  | 
| 
 无符号整数  | 
 %u  | 
 以 10 为基数  | 
| 
 %o  | 
 以 8 为基数(八进制)  | 
|
| 
 %x  | 
 以 16 为基数(十六进制),小写字母 a–f  | 
|
| 
 %X  | 
 与 %x 相同,大写字母 A–F  | 
|
| 
 浮点数  | 
 %f  | 
 定点记数法(使用精度操作符指定小数点后的位数。)  | 
| 
 %e  | 
 指数记数法,例如 3.e+00(使用精度操作符指定小数点后的位数)。  | 
|
| 
 %E  | 
 与 %e 相同,但为大写,例如 3.E+00(使用精度操作符指定小数点后的位数)。  | 
|
| 
 %g  | 
 更紧凑的 %e 或 %f,不带尾随零(使用精度操作符指定有效数字位数。)  | 
|
| 
 %G  | 
 更紧凑的 %E 或 %f,不带尾随零(使用精度操作符指定有效数字位数。)  | 
|
| 
 字符或字符串  | 
 %c  | 
 单个字符  | 
| 
 %s  | 
 字符向量或字符串数组。输出文本的类型与 formatSpec 的类型相同。  | 
可选操作符
可选标识符、标志、字段宽度、精度和子类型操作符进一步定义了输出文本的格式。
- 标识符
处理函数输入参数的顺序。使用语法 n$,其中 n 代表函数调用中其他输入参数的位置。
注意:如果输入参数为数组,则不能使用标识符指定该输入参数中的特定数组元素。
 - 标志
‘–’
‘+’
‘ ‘
‘0’
‘#’
修改选定的数值转换:
- 对于 %o、%x 或 %X,将输出 0、0x 或 0X 前缀。
 - 对于 %f、%e 或 %E,即使精度为零也将输出小数点。
 - 对于 %g 或 %G,不删除尾随零或小数点。
 
示例:%#5.0f
- 字段宽度
要输出的最低字符数。字段宽度操作符可以是数字,也可以是指向输入参数的星号 (*)。当将 * 指定为字段宽度操作符时,其他输入参数必须指定打印宽度和要打印的值。宽度和值可以是参数对组,也可以是数值数组中的对组。使用 * 作为字段宽度操作符时,可以打印具有不同宽度的不同值。除非标志另行指定,否则该函数使用空格填充值之前的字段宽度。
- 精度
对于 %f、%e 或 %E
对于 %g 或 %G
精度操作符可以是数字,也可以是指向参数的星号 (*)。当将 * 指定为字段精度操作符时,其他输入参数必须指定打印精度和要打印的值。精度和值可以是参数对组,也可以是数值数组中的对组。使用 * 作为精度操作符时,可以打印具有不同精度的不同值。将 *.* 指定为字段宽度和精度操作符时,必须以三元组形式指定字段宽度、精度和值。
 
 - 精度
 
 
- 子类型
可以使用子类型操作符将浮点值显示为八进制、十进制或十六进制值。子类型操作符紧邻转换字符之前。此表显示了可使用子类型的转换。
输入值类型
子类型和转换字符
输出值类型
浮点数
 
格式化操作符前或后的文本
formatSpec 还可以在百分号 % 前添加其他文本,或者在转换字符后添加其他文本。文本可以为:
- 要打印的普通文本。
 - 无法作为普通文本输入的特殊字符。此表显示了如何在 formatSpec 中表示特殊字符。
特殊字符
表示形式
单引号
”
百分比字符
%%
反斜杠
\\
警报
\a
退格符
\b
换页符
\f
换行符
\n
回车符
\r
水平制表符
\t
垂直制表符
\v
其 Unicode® 数值可以通过十六进制数
N表示的字符\xN
示例:sprintf(‘\x5A’) 返回 ‘Z’
其 Unicode 数值可以通过八进制数
N表示的字符\N
示例:sprintf(‘\132’) 返回 ‘Z’
 
使用格式化操作符进行转换时要注意的行为
- 数值转换仅输出复数的实部。
 - 如果指定不适合数据的转换(例如数值的文本转换),MATLAB® 将改写指定的转换并使用 %e。
 - 如果对整数值应用文本转换(%c 或 %s),MATLAB 会将对应于有效字符代码的值转换为字符。
 
提示
num2str 不接受 formatSpec 输入参数中的位置标识符。例如,num2str([14 15],’%2$X %1$o) 将返回错误。
位置标识符指定格式化操作符处理函数的输入参数的顺序,而不是处理输入数组的元素的顺序。当调用 num2str 时,只有一个输入参数包含要转换的数字。
算法
num2str将删除字符数组中的任何前导空格,即使formatSpec包含空格字符标志也是如此。例如,num2str(42.67,’% 10.2f’) 返回一个 1×5 字符数组 ‘42.67’。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121220.html
                