Matlab 函数的评价函数
我有两个符号功能Matlab 函数的评价函数,matlab,symbolic-math,Matlab,Symbolic Math,我有两个符号功能 syms a(t) b(t) t a(t) = 5*b(t); b(t) = exp(t); 如何确定特定t的函数a(t=5)的值,假设t=5: a(5) 我得到的是 a(5) ans = 5*b(5) 但是我想要实际值(1.4841e+02)。我试过的是 eval(a(5)) subs(a, b(t), exp(5)) 有人能帮忙吗。谢谢 编辑:请注意,b(t)是在a(t)之后定义的。这对我很重要。正如评论中所建议的,您的大多数问题都来自于定义的顺序。在定义b(t)的
syms a(t) b(t) t
a(t) = 5*b(t);
b(t) = exp(t);
如何确定特定t的函数a(t=5)的值,假设t=5:
a(5)
我得到的是
a(5)
ans = 5*b(5)
但是我想要实际值(1.4841e+02)。我试过的是
eval(a(5))
subs(a, b(t), exp(5))
有人能帮忙吗。谢谢
编辑:请注意,b(t)是在a(t)之后定义的。这对我很重要。正如评论中所建议的,您的大多数问题都来自于定义的顺序。在定义
b(t)
的外观之前,您创建了a(t)
,但您已经告诉MATLAB将存在b(t)
。基本上,MATLAB知道在a(t)
中有一个叫做b(t)
的东西,但实际上并不知道是什么(即使你已经定义了它,你也在运行那行代码之后定义了它!)
只需将第一行更改为:
syms a(t) b(t) t
b(t) = exp(t); % MATLAB here understand that the syntax b(t)=.. is correct, as you defined b(t) as symbolic
a(t) = 5*b(t); % MATLAB here knows what b(t) looks like, not only that it exists
做
double(a(3))
获取数值结果。首先定义
b(t)
,然后a(t)
提出不同的问题,不同的单独问题。另外,你需要解释为什么它对你很重要。否则答案是“你重视它是错误的”。谢谢你,很遗憾,这在我的实际m文件中是不可能的,因为第二个函数b(t)是第一个函数a(t)的结果。您是否想到了另一种可能性或解决方法?@O.Berner如果您的问题与您提出的问题不同,那么。。。。你应该考虑询问你的实际问题,当然,这是一个MWE,但我编辑了这个问题。有没有可能用它的函数来代替a(t)中的b(t),比如subs(a,b(t),exp(5)),但对于符号函数呢?@O.Berner如果这个例子没有再现这个问题,那么它就是一个坏例子。我们想教你如何正确编程。这通常是告诉你如何不做事情,因为一半的编程问题来自于糟糕的设计。
double(a(3))