MATLAB符号运算问题

运行下面:symsabxXY>>k=sym('3');>>z=sym('c*sqrt(d)+y*sin(t)');>>EXPR=a*z*X+(b*x^2+k)*Y;>>s... 运行下面:syms a b x X Y
>> k=sym('3');
>> z=sym('c*sqrt(d)+y*sin(t)');
>> EXPR=a*z*X+(b*x^2+k)*Y;
>> symvar(EXPR)

得到:ans =

[ X, Y, a, b, c, d, t, x, y]
这是书上的一个例子。但有一点比较疑惑:符号运算不是都要先定义符号变量吗?这个例子没有定义c,d,t,但运算还是可以,而没有提示说未定义c,d,t三个变量。
展开
 我来答
chinabud
2010-11-06 · 超过24用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:47.9万
展开全部
经过测试,我发现你运行完程序后,workspace中是没有c,d,t的。因此z=sym('c*sqrt(d)+y*sin(t)');这一句中产生的c,d,t只在用到z时才起作用。即EXPR=a*z*X+(b*x^2+k)*Y;这一句通过z引出了c,d,t,且matlab认为c,d,t比z更为基础,因此ans中只有c,d,t而没有z。

一言以蔽之,c,d,t这种定义形式是局部的,z的赋值形式使其成为中间变量。

你运行完程序后输入ss=c会出错,找不到c,因为c不在全局的变量堆栈中,而运行findsym(z)会找到c,因为c在z的局部变量堆栈中。
Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
小老鼠红叶
2010-11-07
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
这是matlab的一个特点,syms不需要定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式