我有两个符号功能
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)是在(t)之后定义的。这对我很重要。
答案 0 :(得分:1)
正如评论中所建议的那样,您的大部分问题都来自您的定义顺序。您在定义a(t)
的外观之前创建b(t)
,但您已经告诉MATLAB b(t)
将存在。基本上,MATLAB知道在a(t)
中有一些名为b(t)
的东西,但并不真正知道什么(即使你已经定义了它,你在运行那行代码之后就定义了它。)。
syms a(t) b(t) t
a(t) = 5*b(t); % MATLAB does not error because you told it that b(t) is symbolic. It just has no idea what it looks like.
b(t) = exp(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))
获取数字结果。