matlab字符串

Matlab字符串转换及数值格式转换2010-04-07 10:33字符串转换函数
abs        字符串到ASCII转换
dec2hex        十进制数到十六进制字符串转换
fprintf        把格式化的文本写到文件中或显示屏上
hex2dec        十六进制字符串转换成十进制数
hex2num        十六进制字符串转换成IEEE浮点数
int2str        整数转换成字符串
lower        字符串转换成小写
num2str        数字转换成字符串
setstr        ASCII转换成字符串
sprintf        用格式控制,数字转换成字符串
sscanf        用格式控制,字符串转换成数字
str2mat        字符串转换成一个文本矩阵
str2num        字符串转换成数字
upper        字符串转换成大写

在许多情况下,希望把一个数值嵌入到字符串中。几个字符串转换可完成这个任务。   
? rad=2.5;  area=pi*rad^2;                
? 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,它用类似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 ' , rad, area)
A circle of radius 2.5 has an area of 19.63.                
这里%.4g是用在函数num2str中的数据格式。%.4g就是用指数或定点标记,不管哪一种更短些,只显示至4位数字。除了g格式,还可用e (指数)和f (定点)转换。表6.2表明在各种不同转换下,如何显示pi结果。 

数值格式转换例子
命令                结果
fprintf(' %.0e/n ',pi)        3e+00
fprintf(' %.1e/n ',pi)        3.1e+00
fprintf(' %.3e/n ',pi)        3.142e+00
fprintf(' %.5e/n ',pi)        3.14159e+00
fprintf(' %.10e/n ',pi)        3.1415926536e+00
fprintf(' %.0f/n ',pi)        3
fprintf(' %.1f/n ',pi)        3.1
fprintf(' %.3f/n ',pi)        3.142
fprintf(' %.5f/n ',pi)        3.14159
fprintf(' %.10f/n ',pi)        3.1415926536
fprintf(' %.0g/n ',pi)        3
fprintf(' %.1g/n ',pi)        3
fprintf(' %.3g/n ',pi)        3.14
fprintf(' %.5g/n ',pi)        3.1416
fprintf(' %.10g/n ',pi)        3.141592654
fprintf(' %.8.0g/n ',pi)    3
fprintf(' %.8.1g/n ',pi)    3
fprintf(' %.8.3g/n ',pi)    3.14
fprintf(' %.8.5g/n ',pi)    3.1416
fprintf(' %.8.10g/n ',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
three
four
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值