在Matlab中可以使用匿名函数作为事件函数吗?我想要做的基本上是
opt = odeset('Events', @(t,y) (deal(y(end)-t^2,1,0)));
[T,Y] = ode45(@odefun,[tstart tend],y0,opt);但是,这将返回一个错误,报告要处理的输出数量必须完全匹配。有没有其他方法可以让匿名函数返回多个参数?
发布于 2015-03-06 19:30:50
我注意到这篇文章在寻找同样问题的答案。这意味着,对于某些人来说,这个问题可能仍然有效。既然我最终自己找到了解决方案,我想给出一个有点“过时”的答案。
实际上,是的-这是可能的,但不是直接的。试试这个:
evnt_fun = @(t,f)subsref({'some stop condition',1,0},struct('type','{}','subs',{{':'}}));
我不能完全检查代码的向后兼容性。但是,它适用于R2011和更高版本的MATLAB。
https://stackoverflow.com/questions/14953888
复制相似问题