将MATLAB代码转换为R

28

是否有一种工具可以将MATLAB代码转换为R语言?

我有很多需要从MATLAB转换为R语言的代码。它不必完全准确,但它会在开始时提供帮助。


1
对于简单的程序,您可以尝试这个新包:https://cran.r-project.org/package=matconv - vonjd
4个回答

16

Paul Gilbert提供了一份简单的Bash脚本,可以帮助你入门(他声称这将完成大约80%的转换),你可以在R邮件列表上找到它:

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

9

8
一种替代翻译代码的方法是使用RMatlab包在R中调用MATLAB。
我没有尝试过RMatlab,但该软件包描述如下:
该软件包提供了读写MAT文件的方法。它还可以与运行在本地或远程主机上的Matlab v6或更高版本进行通信(评估代码、发送和检索对象等)。

对于Windows系统,请参考此答案:https://dev59.com/_Ww15IYBdhLWcg3wT5_2#6933492 - Iterator
1
@user236215,R和RMatlab都可以在Windows上运行。 - David LeBauer
2
我认为 R.Matlab 包可以读取 Matlab 的 .mat 文件,这些文件基本上是数据文件,但它不能帮助你翻译 .m 文件中的代码。 - Geek On Acid
@GeekOnAcid 你说得对,但它提供了一个接口给MATLAB,这样MATLAB就可以评估代码了。 - David LeBauer
正确的名称是R.matlab,这是rcran网址:http://cran.r-project.org/web/packages/R.matlab/index.html - runlevel0

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接