MATLAB软件字符串与数值间的相互转换
MATLAB主要是针对数据或矩阵运算的,因而在对字符串进行操作时必然会经常遇到字符串与数值之间的转换问题。将计算结果按照某种格式进行输出,或对图形对象进行标注和说明时就必须将数值转换为字符串。MATLAB提供了将数值转换为字符串和将字符串转换为数值两种功能的函数。
1.将整数转换为字符串
格式如下:
int2str(A)
其中A可以为数或矩阵,当然也包括复数。如果A为数,则此函数将A转换为字符串;如果A为矩阵,则转换为字符串矩阵,每个数之间用空格隔开;如果A为复数或复数矩阵,则只将其实部进行转换,即相当于int2str(real(A))。real(A)为取矩阵A的实部,如果A中元素不为整数,则先将个数取整,再进行转换。
例2.40 利用int2str()函数将整数转换为字符串。
>> A=[1.2 2.3 3.4;4.5 5.6 6.7]
A =
1.2000 2.3000 3.4000
4.5000 5.6000 6.7000
>> a=int2str(A)
a =
1 2 3
5 6 7
>> b=1234.5678;
>> int2str(b)
ans =
1235
>> c=7.2+8.9i;
>> int2str(c)
ans =
7
2.将浮点数转换为字符串
(1)num2str:此函数将一个浮点数转换为字符串。这个函数在作图过程中,用相应的计算结果对输出图形进行说明和标注时非常有用,可以用在M函数中,根据不同的图形对标注进行相应的变化。
(2)num2str(A):此函数将一个浮点数或数组A转换为一个字符串或字符串矩阵,如果为复数,则其实部和虚部都不能忽略。
(3)num2str(A,N):N指定了转换的精度,即指定了字符串中每个数字最多包含N位数。
(4)num2str(A,format):此函数用指定的格式化字符串format转换数或矩阵A。关于格式化输出,格式字符串表示方法与C语言相同。
例2.41 利用int2str()函数将整数转换为字符串。
>> A=[123.4566666 789.25444444;-1.485962222 0.0000578426];
>> a=num2str(A)
a =
123.4567 789.2544
-1.485962 5.78426e-005
>> B=[1.2345+1.2000i 2.54785+3.5000i;5.47854+6.2000i 9.12045+4.5000i];
>> b=num2str(B,3)
b =
1.23+1.2i 2.55+3.5i
5.48+6.2i 9.12+4.5i
>> A=[123.4566666 789.25444444;-1.485962222 0.0000578426];
>> a=num2str(A, '%10.3g')
a =
123 789
-1.49 5.78e-005
3.将字符串转换为浮点数
格式如下:
str2num(S)
S可以为字符串或字符串矩阵,S必须是合法的数据形式或表达式。如果S为表达式,则此函数会给出计算所得的表达式的值,其功能与feval函数相同。S中合法的字符可以包括:数字0~
例2.42 利用str2num()函数将字符串转换为浮点数。
>> str2num(a)
ans =
123.0000 789.0000
-1.4900 0.0001
>> str2num('sin(1+2)')
ans =
0.1411
>> str2num('2*3;4/5-6')
ans =
6.0000
-5.2000