除了包含anonymous functions的某些函数(例如mfile2sci
)之外,我的大部分Matlab函数都可以使用f=@(x,y)sin(x)+log(y)
函数转换为Scilab函数。有没有办法将匿名函数转换为Scilab inline functions(例如,对于前面的示例deff('[z]=f(x,y)','z=sin(x)+log(y)')
),这样我就不必更改我的Matlab函数了?
答案 0 :(得分:1)
是的,在当前状态下,Matlab到Scilab的翻译器mfile2sci
无法翻译匿名函数,但是可以通过以下补丁来改善此行为:
https://codereview.scilab.org/#/c/20916/
但是,请注意,在使用诸如fsolve
,optim
之类的“求解器”或ode求解器(例如ode45
,ode15s
等)时,匿名函数通常会出现。 ..),并且永远不会将使用这些语句的语句转换为有效的Scilab语句(会给出警告)。