Substituting code into function handle
2 次查看(过去 30 天)
显示 更早的评论
Hi all. I have a variable myFormula that is a mathematical function of three symbolic variables, a, b, and c. For example, it may be the case that
myFormula = a^2 + b - c/2;
I need to pass this expression into a function handle (I think that is the term, at least), such that my desired result is
thisFunction = @(a,b,c) a^2 + b - c/2;
The problem is that, although myFormula always depends on a, b, and c, the relationship between these variables is arbitrary. To get around this, I have found that
thisFunction = @(a,b,c) subs(myFormula);
is a viable solution. However, thisFunction needs to be passed into ode45 (which constitutes many iterations), which causes subs() to be evaluated thousands of times, making things extremely slow. It seems like there should be a simple solution to this - any suggestions?
0 个评论
采纳的回答
Walter Roberson
2012-6-20
If your formula is in the form of a symbolic expression, as is implied by your use of subs(), then use matlabFunction() to convert the expression into a function handle.
2 个评论
Walter Roberson
2012-6-20
Not really, none that would not pretty much end up doing what matlabFunction() does.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!