Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 函数的评价函数_Matlab_Symbolic Math - Fatal编程技术网

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))