2011-04-03 16 views
24
'a dönüştürebilir

MATLAB kodunu R?MATLAB kodunu R

Ben R. Kusursuz olmak zorunda değildir MATLAB'den dönüştürülmesi gereken bir sürü kod var ama bir başlangıç ​​vermekte yararlı olacaktır.

+0

: g sistemi()

2. Seçenek: R.matlab MATLAB sunucusuna kodu göndermek

Seçenek 3 Bu yeni paketi deneyebilirsiniz: https://cran.r-project.org/package=matconv – vonjd

cevap

9

Hayır kolay bir dönüştürme yok. Bazıları neredeyse tam olarak tercüme edecek, bazıları sadece büyük acı ve ıstıraplarla tercüme edecek. En azından R'yi kullanıyor olacaksın! benzer fonksiyonları ve sözdizimi çalışmak buradan başlayın:

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

bu sayfada ilgili soru sormak lütfen takılıp

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

. Bu, referans kartlarının kullanılmaya başlamasıyla yardımcı olacak olsa da, gerçekten de çok belirsiz.

8

RMatlab paketi kullanılarak, R içinden MATLAB çağırmak için olacaktır kod çeviri için bir alternatif.

Ben RMatlab çalıştı, ancak paket açıklaması devletler değil:

Bu paket MAT dosyalarını okuma yazma yöntemler sağlar. Aynı zamanda mümkün Matlab v6 veya üstü çalışan yerel olarak veya uzaktaki bir ana bilgisayarda ile (gönderme vb nesneleri almak, kodu değerlendirmek) iletişim kurmak için yapar.

+0

Yalnızca UNIX üzerinde çalışır :( – user236215

+0

Windows için, bu cevaba bakın: http://stackoverflow.com/questions/6695105/ r-scripts-in-matlab/6933492 # 6933492 – Iterator

+1

@ user236215 hem R hem de RMatlab pencerelerde çalışır. –

14

Paul Gilbert sen R mailing list üzerinde (o yolun yaklaşık% 80'ini dönüştürecektir iddia) Başlamak olabilecek bir kaba Bash komut dosyası sağlar:

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