【问题标题】:Convert MATLAB code to R [closed]将 MATLAB 代码转换为 R [关闭]
【发布时间】:2011-07-28 11:34:07
【问题描述】:

有没有将MATLAB代码转换为R的工具?

我有很多代码需要从 MATLAB 转换为 R。它不一定要准确,但有助于抢占先机。

【问题讨论】:

标签: r matlab


【解决方案1】:

不,没有简单的转换。有些翻译几乎完全准确,有些翻译只能带着巨大的痛苦和痛苦。至少你会使用 R!从这里开始计算类似的函数和语法:

http://cran.r-project.org/doc/contrib/R-and-octave.txt

http://cran.r-project.org/doc/contrib/Hiebeler-matlabR.pdf

当您遇到困难时,请在此处提出具体问题。就目前而言,这确实太模糊了,尽管这些参考卡将有助于入门。

【讨论】:

    【解决方案2】:

    翻译代码的另一种方法是从 R 中调用 MATLAB,使用 RMatlab 包。

    我没有尝试过RMatlab,但是包描述说:

    这个包提供了读取方法 并写入 MAT 文件。它也使它 可以沟通(评估 代码,发送和检索对象等) 使用 Matlab v6 或更高版本运行 在本地或远程主机上。

    【讨论】:

    【解决方案3】:

    Paul Gilbert 在R mailing list 上提供了一个粗略的Bash 脚本,可以帮助您开始(他声称它将转换大约80%):

    #!/bin/csh
    cp $1 $2
    ex -s $2 <<eof
       g/%/s//#/g
       g/function\(..*\)=\(..*\)(\(..*\)/s//\2 <-function( \3 { \1/
       g/end/s//   } #/
       g/for\(..*\)=\(..*\):\(..*\)/s//for ( \1 in \2 : \3 ) {/
       g/_/s//./g
       g/;/s///g
       g/==/s//@@/g
       g/=/s//<-/g
       g/@@/s//==/g
       g/zeros(/s//matrix(0,/g
       g/ones(/s//matrix(1,/g
       g/eye(/s//diag(1,/g
       g/\/s//solve(,)/g
       g/fsolve('\(..*\)'/s//ms(~\1 /g
       g/param(\(..*\))/s//param[ \1 ] /g
       g/var(\(..*\))/s//var[ \1 ] /g
       g/mod1(\(..*\)/s//mod1[ \1 /g
       wq
    eof
    

    【讨论】:

      【解决方案4】:

      请参阅有关此问题的 cmets: 网址:https://mandymejia.wordpress.com/2014/08/18/three-ways-to-use-matlab-from-r/

      她提到了几个选择:

      选项 1:使用 system() 一次运行一个 MATLAB 命令

      选项 2:使用 R.matlab 将代码发送到 MATLAB 服务器

      选项 3:使用 writeLines() 编写整个 MATLAB 程序并使用 system() 运行

      【讨论】:

        猜你喜欢
        • 2018-05-13
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 1970-01-01
        • 2012-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多