《Matlab字符串转换及数值格式转换.docx》由会员分享,可在线阅读,更多相关《Matlab字符串转换及数值格式转换.docx(4页珍藏版)》请在三一办公上搜索。
1、Matlab字符串转换及数值格式转换Matlab字符串转换及数值格式转换字符串转换函数abs 字符串到ASCII转换dec2hex 十进制数到十六进制字符串转换fprintf 把格式化的文本写到文件中或显示屏上hex2dec 十六进制字符串转换成十进制数hex2num 十六进制字符串转换成IEEE浮点数int2str 整数转换成字符串lower 字符串转换成小写num2str 数字转换成字符串setstr ASCII转换成字符串sprintf 用格式控制,数字转换成字符串sscanf 用格式控制,字符串转换成数字str2mat 字符串转换成一个文本矩阵str2num 字符串转换成数字upper
2、 字符串转换成大写在许多情况下,希望把一个数值嵌入到字符串中。几个字符串转换可完成这个任务。 ? rad=2.5; area=pi*rad2; ? t= A circle of radius num2str(rad) has an area of num2str(area) . ; ? disp(t) A circle of radius 2.5 has an area of 19.63. 这里函数num2str用来把数值转换成字符串,字符串连接用来把所转换的数嵌人到一个字符串句子中。按类似方式,int2str把整数转换成字符串。无论是num2str还是int2str都调用函数sprintf,
3、它用类似C语言语法把数值转换成字符串。无论fprintf还是sprintf以同样方式处理输入参量,但fprintf把输出送到显示屏或文件中,而sprintf把输出返回到一个字符串中。例如,上面的例子用num2str可重写为 ? t=sprintf( A circle of radius %.4g has an area of %.4g. , rad, area); ? disp(t) A circle of radius 2.5 has an area of 19.63. ? fprintf( A circle of radius %.4g has an area of %.4g.n , ra
4、d, area) A circle of radius 2.5 has an area of 19.63. 这里%.4g是用在函数num2str中的数据格式。%.4g就是用指数或定点标记,不管哪一种更短些,只显示至4位数字。除了g格式,还可用e (指数)和f (定点)转换。表6.2表明在各种不同转换下,如何显示pi结果。 数值格式转换例子命令 结果fprintf( %.0en ,pi) 3e+00fprintf( %.1en ,pi) 3.1e+00fprintf( %.3en ,pi) 3.142e+00fprintf( %.5en ,pi) 3.14159e+00fprintf( %.10
5、en ,pi) 3.1415926536e+00fprintf( %.0fn ,pi) 3fprintf( %.1fn ,pi) 3.1fprintf( %.3fn ,pi) 3.142fprintf( %.5fn ,pi) 3.14159fprintf( %.10fn ,pi) 3.1415926536fprintf( %.0gn ,pi) 3fprintf( %.1gn ,pi) 3fprintf( %.3gn ,pi) 3.14fprintf( %.5gn ,pi) 3.1416fprintf( %.10gn ,pi) 3.141592654fprintf( %.8.0gn ,pi) 3
6、fprintf( %.8.1gn ,pi) 3fprintf( %.8.3gn ,pi) 3.14fprintf( %.8.5gn ,pi) 3.1416fprintf( %.8.10gn ,pi) 3.141592654注意,对e 和f 格式,小数点右边的十进制数就是小数点右边要显示的多少位数字。相反,在g 的格式里,小数点右边的十进制数指定了显示数字的总位数。另外,注意最后的五行,其结果指定为8个字符长度,且是右对齐。在最后一行,8被忽略,因为指定超过了8位。 概括起来,当需要比缺省函数disp,num2str和int2str所提供的更多的控制时,fprintf和sprintf是有用的。 函数str2mat把一列的几个字符串转换成一个字符串矩阵。例如,? a= one ; b= two ; c= three ;? disp(str2mat(a, b, c, four )one two threefour