将 Matlab 匿名函数转换为 Scilab 内联函数

Converting Matlab anonymous functions to Scilab inline functions

提问人:Dante 提问时间:10/31/2014 最后编辑:Dante 更新时间:4/2/2019 访问量:1309

问:

我的大多数Matlab函数都可以与该函数一起转换为Scilab函数,但一些包含匿名函数的函数除外(例如)。有没有办法将匿名函数转换为 Scilab 内联函数(例如,对于前面的示例),这样我就不必更改我的 Matlab 函数?mfile2scif=@(x,y)sin(x)+log(y)deff('[z]=f(x,y)','z=sin(x)+log(y)')

MATLAB 匿名函数 SciLab

评论

0赞 Foad S. Farimani 3/21/2019
Scilab 现在有一个功能。我想知道是否有可能提取出这种模式。类似于 validMatlabFunctionNanme\s?=\s?@(someText) MathematicalExpression...regexp

答:

1赞 Stéphane Mottelet 4/2/2019 #1

是的,在当前状态下,Matlab 到 Scilab 转换器无法翻译匿名函数,但可以通过以下补丁来改善此行为:mfile2sci

https://codereview.scilab.org/#/c/20916/

但是,请注意,匿名函数在使用“求解器”(如 、 、 ,...)时,大多数时候都会发生匿名函数,并且使用这些函数的语句永远不会转换为有效的 Scilab 语句(给出警告)。fsolveoptimode45ode15s

评论

0赞 Foad S. Farimani 4/3/2019
多谢。您愿意分享您在这里使用的正则表达式吗?
1赞 Stéphane Mottelet 4/3/2019
是的,您可以在 codereview.scilab.org/#/c/20916/2/scilab/modules/m2sci/macros/ 修补文件的代码中找到...

上一个:溢出与 Inf

下一个:IEEE 754 舍入或斩波