MATLAB字符串转换函数

来源:本站
导读:目前正在解读《MATLAB字符串转换函数》的相关信息,《MATLAB字符串转换函数》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《MATLAB字符串转换函数》的详细说明。
简介:文章简单介绍了MATLAB字符串转换函数的运算过程

字 符 串 转 换

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经常是函数disp的一个有用替换,由于它提供了对结果更多的控制。当准备把格式化的数据写到一个文件中去时,按缺省它在命令窗口显示结果。例如,

» fprintf(' See what this does ')

See what this does»

» fprintf(' See what this doesn ')

See what this does

在上面第一个例子里,fprintf显示字符串,然后立即给出MATLAB提示符。相反,在第二个例子里,n 插入一个新行字符,在MATLAB提示符出现之前创建一个新行。

无论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结果。

表6.2

数 值 格 式 转 换 例 子

命令 结果

fprintf(' %.0en ',pi) 3e+00

fprintf(' %.1en ',pi) 3.1e+00

fprintf(' %.3en ',pi) 3.142e+00

fprintf(' %.5en ',pi) 3.14159e+00

fprintf(' %.10en ',pi) 3.1415926536e+00

fprintf(' %.0fn ',pi) 3

fprintf(' %.1fn ',pi) 3.1

fprintf(' %.3fn ',pi) 3.142

fprintf(' %.5fn ',pi) 3.14159

fprintf(' %.10fn ',pi) 3.1415926536

fprintf(' %.0gn ',pi) 3

fprintf(' %.1gn ',pi) 3

fprintf(' %.3gn ',pi) 3.14

fprintf(' %.5gn ',pi) 3.1416

fprintf(' %.10gn ',pi) 3.141592654

fprintf(' %.8.0gn ',pi) 3

fprintf(' %.8.1gn ',pi) 3

fprintf(' %.8.3gn ',pi) 3.14

fprintf(' %.8.5gn ',pi) 3.1416

fprintf(' %.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

three

four

从上面看不明显,上面的每行有同样数目的元素。较短行用空格补齐,使结果形成一个有效的矩阵

在逆方向转换中,有时是很方便的。

» s= ' [1 2; pi 4] ' % a string of a MATLAB matrix

s =

[1 2; pi 4]

» str2num(s)

ans =

1.0000 2.0000

3.1416 4.0000

» s=' 123e+5 ' % a string containing a simple number

s =

123e+5

» str2num(s)

ans =

12300000

函数str2num不能接受用户定义的变量,也不能执行转换过程的算术运算。

提醒:《MATLAB字符串转换函数》最后刷新时间 2024-03-14 01:10:37,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《MATLAB字符串转换函数》该内容的真实性请自行鉴别。