是否有将MATLAB代码转换为R?
的工具我有很多代码需要从MATLAB转换为R.它不一定准确,但它有助于提供一个良好的开端。
答案 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()
运行