将MATLAB代码转换为R.

时间:2011-04-03 02:15:40

标签: r matlab

是否有将MATLAB代码转换为R?

的工具

我有很多代码需要从MATLAB转换为R.它不一定准确,但它有助于提供一个良好的开端。

4 个答案:

答案 0 :(得分:15)

保罗吉尔伯特提供了一个粗略的Bash脚本,可以让你开始(他声称它将转换大约80%的路径)R mailing list

#!/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

答案 1 :(得分:9)

没有简单的转换。有些人几乎会完全翻译,有些人只会痛苦地翻译。至少你会使用R!从这里开始计算出类似的函数和语法:

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

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

当您遇到困难时,请在此处提出具体问题。虽然这些参考卡有助于入门,但实际上它实在太模糊了。

答案 2 :(得分:8)

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

我还没有尝试过RMatlab,但包描述说明了:

  

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

答案 3 :(得分:3)

请参阅有关此问题的评论: 网址: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()

运行