matlab中的num2str函数和char函数在用法上有什么本质区别呀?
区别如下:
1、定义不同。
char是计算机编程语言(c、c++、java、VFP,,pascal,等)中可容纳单个字符的一种基本数据类型。num2str是把数值转换成字符串。
2、用法不同。
把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出。在matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。char是ascii码表将数字映射成字符。
Num2str函数是一个相当有用的函数,一般配合[]连接符使用。
可以用于求导数的表达式,函数X^2 – y^p + y^t,pt为数值,可以跟随程序的不同被赋予不同的值。 Diff([‘x^2 – y^’ num2str(p) ‘+y^’ num2str(t), x])。
3、语法格式不同。
str = num2str(A)
把数组A中的数转换成字符串表示形式。
=char(number)
其中,参数number为转换的字符代码,介于0~255之间,char占一个字节,也就是8个二进制位,但它表示的是有符号的类型,所以表示的范围是-128~127;uchar表示无符号的类型,所以表示的范围是0~255。
参考资料来源:百度百科-num2str
参考资料来源:百度百科-char
num2str是将数转成文字,举例子 num2str(43)得到的将是'43',有两个字符
char是按照ascii码表将数字映射成字符,char(43)得到的将是‘+’,(加号的ascii码就是43)
Num2str函数是一个相当有用的函数,一般配合[]连接符使用
1 用于求导数的表达式,函数X^2 – y^p + y^t,pt为数值,可以跟随程序的不同被赋予不同的值。 Diff([‘x^2 – y^’ num2str(p) ‘+y^’ num2str(t), x])
2 用于求解积分用法同上,把被积函数表示出来就可以了。 int([‘x^2 – y^’ num2str(p) ‘+y^’ num2str(t), x, a,b])
3 用于求解方程或微分方程 Solve([‘x^2 – x^’ num2str(p) ‘+x^’ num2str(t)],x) Dsolve([‘Dx^2 – x^’ num2str(p) ‘+x^’ num2str(t)], x)
4 如果你要运行一些大的算法,涉及到了循环,你不防试试下面的方法,提示程序的进度。这个是我在做Monte Carlo时的一个收获。 Plot(...)任意的绘图, Text(x, y , ['Monte Carlo Number=' num2str(mc) '/' num2str(NMc)])将这个语句写在循环体的内部。
5 在保存图像的时候用到动态的给文件起名的时候,也可以用这个语句。文件名[‘file’ num2str(i) ‘.bmp’]i为循环计数名。
MATLAB char
使用方法
S = char(X)
把表示字符的非负整数数组X转化为字符串数组S,实际的字符显示和给定的字符编码有关。X的范围为从0到65535,任何在此范围外的数据都没有定义。使用double函数把字符串转化为对应整数。
S = char(C)
如C是一个元胞字符数组,C中的每个元素放置在字符数组s中的行中。用cellstr函数可以转化回来。
S = char(t1, t2, t3, ...)
生成字符型数组S把t1,t2,t3,...作为行,为了生成有效的矩阵自动在每个字符型数组加倍添加空格。每个字符参数,ti,本身是字符型数组。这允许任意大的字符数组的创建。空字符串是重要的。
num2str是将数转成文字,举例子 num2str(43)得到的将是'43',有两个字符哦~
char是按照ascii码表将数字映射成字符,char(43)得到的将是‘+’,(加号的ascii码就是43哦)~
明白了没?
如果你输入的是数组,结果是类似的,不过每个都处理而已。
>> z=sym('t');x=laplace(z);disp(['a=',char(x)])
a=1/s^2
>> z=sym('t');x=laplace(z);disp(num2str(x))
??? Undefined function or method 'max' for input arguments of type 'sym'.
我想知道上面两种用法中,为什么用num2str就报错呢?
还有下面两个语句
>> z=sym('t');char(z)
ans =
t
>> z=sym('t');num2str(z)??? Undefined function or method 'max' for input arguments of type 'sym'.
如果你想学matlab,请先学好英语,然后才能看错误哦亲~
错误里说max不能对sym型变量使用,这跟你提的两个函数一点关系都没有哦~