2011-04-03 13 views
24

पर कनवर्ट करें MATLAB कोड को आर में परिवर्तित करने के लिए कोई उपकरण है?MATLAB कोड को R

मेरे पास बहुत सारे कोड हैं जिन्हें MATLAB से R में परिवर्तित करने की आवश्यकता है। यह सटीक नहीं होना चाहिए, लेकिन यह सिर शुरू करने में सहायक होगा।

+0

सरल कार्यक्रमों के लिए आप इस नए पैकेज को आजमा सकते हैं: https://cran.r-project.org/package=matconv – vonjd

उत्तर

9

कोई आसान रूपांतरण नहीं है। कुछ लगभग बिल्कुल अनुवाद करेंगे, कुछ केवल महान दर्द और पीड़ा के साथ अनुवाद करेंगे। कम से कम आप आर का उपयोग करेंगे हालांकि! अनुरूप कार्य करता है और वाक्य रचना बाहर काम करने के लिए यहाँ प्रारंभ करें:

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

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

जब आप अटक कृपया विशिष्ट प्रश्न यहाँ पूछना मिलता है। यह वास्तव में बहुत अस्पष्ट है क्योंकि यह खड़ा है, हालांकि उन संदर्भ कार्ड शुरू करने में मदद करेंगे।

8

कोड का अनुवाद करने का एक विकल्प RMatlab पैकेज का उपयोग करके MATLAB को आर के भीतर कॉल करना होगा।

मैं RMatlab की कोशिश की है नहीं, लेकिन पैकेज विवरण कहता है:

इस पैकेज पढ़ सकते हैं और मेट फ़ाइलें लिखने के तरीकों प्रदान करता है। यह को संवाद करने के लिए संभव बनाता है ( कोड का मूल्यांकन, वस्तुओं को भेजना और पुनर्प्राप्त करना आदि) मैटलैब v6 या उच्चतर स्थानीय या दूरस्थ होस्ट पर चल रहा है।

+0

यह केवल यूनिक्स पर चलता है :( – user236215

+0

विंडोज के लिए, यह उत्तर देखें: http://stackoverflow.com/questions/6695105/ कॉल-आर-स्क्रिप्ट्स-इन-मैटलैब/6933492 # 6933492 – Iterator

+1

@ उपयोगकर्ता 236215 दोनों आर और आरएमटालाब विंडोज़ पर चलते हैं। –

14

पॉल गिल्बर्ट एक मोटा Bash स्क्रिप्ट है कि आप R mailing list पर आरंभ करने के सकता है (वह यह दावा करता है कि यह तरीका है के बारे में 80% में परिवर्तित कर देंगे) प्रदान करता है:

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

कृपया इस मुद्दे पर टिप्पणी नहीं देखें: यूआरएल:

विकल्प 1:: https://mandymejia.wordpress.com/2014/08/18/three-ways-to-use-matlab-from-r/

वह कई विकल्प का उल्लेख है एक समय usin में एक ही MATLAB कमांड चलाएं जी प्रणाली()

विकल्प 2: उपयोग R.matlab MATLAB सर्वर से कोड भेजने के लिए

विकल्प 3: writeLines() का उपयोग कर एक पूरी MATLAB कार्यक्रम लिखें और का उपयोग कर चलाए प्रणाली()