使用matlabFunction,我如何指定哪个是变量?哪个是常量?

时间:2015-02-23 14:54:50

标签: matlab anonymous-function

我有一个函数,我想作为一个整数(使用函数'整数'它在函数句柄中使用函数句柄)使用符号变量,但我想创建一个matlabFunction(一个匿名函数)只根据其中一个符号变量,并将其他符号变量视为常量。

s =  (g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2)    

S = matlabFunction(s)

S = 

@(a,g,t,v)sqrt(v.^2+g.^2.*t.^2+g.*t.*v.*sin(a).*2.0)

但我希望看到的是

@(t)sqrt(v.^2+g.^2.*t.^2+g.*t.*v.*sin(a).*2.0)

1 个答案:

答案 0 :(得分:0)

这里有一个解决方法。

函数integral在数值上集成了一个函数。因此,要使用它,您需要一个数值表达式,因此您需要为agv赋予值。

如果你不想这样做,你可以象征性地整合等式s,所以:

s =  (g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2)    
int(s,'t')
ans=
(t/2 + (v*sin(a))/(2*g))*(g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2) + (log((g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2) + (t*g^2 + v*sin(a)*g)/(g^2)^(1/2))*(g^2*v^2 - g^2*v^2*sin(a)^2))/(2*(g^2)^(3/2))

然后你可以使用微积分的基本定理来评估积分。