Есть ли инструмент для преобразования MATLAB кода в R?
У меня есть много кода, который нужно преобразовать из MATLAB в R. Он не обязательно должен быть точным, но он будет полезен при старте.
Есть ли инструмент для преобразования MATLAB кода в R?
У меня есть много кода, который нужно преобразовать из MATLAB в R. Он не обязательно должен быть точным, но он будет полезен при старте.
Пол Гилберт предлагает грубый Bash script, который может помочь вам начать (он утверждает, что он преобразует около 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
Нет никакого простого преобразования. Некоторые будут переводить почти точно, некоторые будут переводить только с большой болью и страданиями. По крайней мере, вы будете использовать R! Начните здесь, чтобы выработать аналогичные функции и синтаксис:
http://cran.r-project.org/doc/contrib/R-and-octave.txt
http://cran.r-project.org/doc/contrib/Hiebeler-matlabR.pdf
Когда вы застряли, задайте здесь конкретные вопросы. Это действительно слишком расплывчато, хотя эти справочные карты помогут с началом работы.
Альтернативой переводу кода было бы вызвать MATLAB из R, используя пакет RMatlab.
Я не пробовал RMatlab, но в описании пакета указано:
Этот пакет предоставляет методы для чтения и писать файлы MAT. Это также делает возможно общаться (оценить код, отправлять и извлекать объекты и т.д.) с Matlab v6 или выше работает локально или на удаленном хосте.
Пожалуйста, ознакомьтесь с комментариями по этому вопросу: URL: https://mandymejia.wordpress.com/2014/08/18/three-ways-to-use-matlab-from-r/
Она упоминает несколько вариантов:
Вариант 1: Запустите одну команду MATLAB за раз, используя system()
Вариант 2: используйте R.matlab для отправки кода на сервер MATLAB
Вариант 3. Запишите всю программу MATLAB с помощью writeLines() и запустите с помощью system()