matlab中的num2str函数和char函数在用法上有什么本质区别呀?

matlab中的num2str函数和char函数在用法上有什么本质区别呀?它们不都是将数转化成字符吗?只不过num2str是转化成字符,而char转化成字符数组,是这样的... matlab中的num2str函数和char函数在用法上有什么本质区别呀?它们不都是将数转化成字符吗?只不过num2str是转化成字符,而char转化成字符数组,是这样的区别吗? 展开
 我来答
小勋爱吃肉
高粉答主

2019-06-22 · 每个回答都超有意思的
知道答主
回答量:6360
采纳率:23%
帮助的人:176万
展开全部

区别如下:

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

shine戚七七
推荐于2017-09-17 · TA获得超过4.7万个赞
知道大有可为答主
回答量:2万
采纳率:75%
帮助的人:2666万
展开全部
虽然都是将数转成字符串,但大有区别的,两个的作用根本就不一样:
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,本身是字符型数组。这允许任意大的字符数组的创建。空字符串是重要的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a536a36
推荐于2017-09-25 · TA获得超过4480个赞
知道小有建树答主
回答量:534
采纳率:100%
帮助的人:284万
展开全部
虽然都是将数转成字符串,但大有区别的,或者说两个的作用根本就不一样哈,我给你解释一下:

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型变量使用,这跟你提的两个函数一点关系都没有哦~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式