评估功能的功能
Evaluating function of functions
我有两个符号函数
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
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))
获取数值结果。
我有两个符号函数
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
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))
获取数值结果。