मैं अक्सर लोगों को शिकायत करता हूं कि MATLAB लाइसेंस कितने महंगे हैं। फिर मुझे आश्चर्य है कि वे सिर्फ ऑक्टेव या आर का उपयोग क्यों नहीं करते हैं । लेकिन क्या बाद का अधिकार सही है? क्या आप MATLAB को बदलने के लिए R का उपयोग कर सकते हैं?
मैं अक्सर लोगों को शिकायत करता हूं कि MATLAB लाइसेंस कितने महंगे हैं। फिर मुझे आश्चर्य है कि वे सिर्फ ऑक्टेव या आर का उपयोग क्यों नहीं करते हैं । लेकिन क्या बाद का अधिकार सही है? क्या आप MATLAB को बदलने के लिए R का उपयोग कर सकते हैं?
जवाबों:
क्या आप MATLAB को बदलने के लिए R का उपयोग कर सकते हैं?
हाँ।
मैंने सालों तक MATLAB का उपयोग किया लेकिन पिछले 3 वर्षों में मुख्य रूप से R पर स्विच किया। इस बिंदु पर, उनके पास सामान्य से बहुत अधिक है। यह आंशिक रूप से आपके क्षेत्र और उपयोग-मामले पर निर्भर करता है। और जैसा कि स्पेंसर ग्रेव्स ने पहले कहा था , यह इस बात पर भी निर्भर करता है कि आप किस चर्च में अक्सर होते हैं। यदि आप निर्णय लेने से पहले किसी विशिष्ट कार्य के लिए MATLAB टूलकिट बनाम CRAN को देखते हैं तो यह सबसे अच्छा है ।
इसी तरह का एक सवाल कुछ साल पहले आर-हेल्प पर और फिर हाल ही में पूछा गया । डेविड हीबेलर (मेन विश्वविद्यालय में) एक व्यापक आर / MATLAB तुलना रखता है , और इस विषय पर सबसे अच्छा संदर्भ है। आप बुनियादी कार्यों की इस तुलना की समीक्षा भी कर सकते हैं ।
यहाँ कुछ चीजें हैं जो मैंने अतीत में देखी हैं, जिनमें से कोई भी सौदा-तोड़ने वाला नहीं होना चाहिए।
इसलिए, यदि उपयोग में आसानी प्राथमिक चिंता नहीं है (और ओपन-सोर्स टूल का उपयोग करने से बचने के लिए कोई अन्य व्यावसायिक कारण नहीं है), तो मुझे लगता है कि आर का उपयोग करने के लिए एक वास्तविक मामला है। इसके चारों ओर मजबूत समुदाय (R मेलिंग सूचियां अद्भुत हैं), तेजी से विकसित हो रहा है (CRAN देखें), और यह मुफ़्त है (जो एक छोटा मुद्दा है!)।
संपादित करें: मैं सिर्फ इस पर एक और बिंदु जोड़ूंगा : "कार्यात्मक डेटा विश्लेषण आर और MATLAB के साथ" पुस्तक में " मैटलैब और आर लैंग्वेज की आवश्यक तुलना" पर एक अध्याय शामिल है। इसमें कुछ महत्वपूर्ण वाक्यविन्यास अंतर शामिल हैं (जैसे बिंदी की व्याख्या, या वर्ग कोष्ठक का अर्थ]]। पुस्तक स्वयं कार्यात्मक प्रोग्रामिंग (किसी भी भाषा में) में रुचि रखने वाले किसी भी व्यक्ति के लिए पढ़ने लायक है।
आर सांख्यिकीय डेटा विश्लेषण और ग्राफिक्स के लिए एक वातावरण है। MATLAB की उत्पत्ति संख्यात्मक अभिकलन में है। यदि आप डेटा हेरफेर (जैसे, मैट्रिक्स / वेक्टर संचालन) के लिए उपयोग करते हैं, तो मूल भाषा कार्यान्वयन में कई विशेषताएं आम हैं।
R की सांख्यिकीय कार्यक्षमता कहीं और खोजना मुश्किल है (> CRAN पर 2000 पैकेज ), और बहुत से सांख्यिकीविद् इसका उपयोग करते हैं। दूसरी ओर, MATLAB में इंजीनियरिंग अनुप्रयोगों के लिए बहुत सारे (महंगे) टूलबॉक्स हैं
मैंने पर्यावरण इंजीनियरिंग से संबंधित समस्याओं के समाधान और मॉडल के निर्माण के लिए R और MATLAB दोनों का उपयोग किया है और दोनों प्रणालियों के बीच बहुत अधिक ओवरलैप है। मेरी राय में, MATLAB के लाभ विशेष डोमेन-विशिष्ट अनुप्रयोगों में निहित हैं। कुछ उदाहरण निम्न हैं:
ऐसे स्ट्रीमलाइन के रूप में कार्य जो द्रव गतिकी जांच में सहायता करते हैं।
टूलबॉक्स जैसे इमेज प्रोसेसिंग टूलसेट। मुझे आर पैकेज नहीं मिला है जो वाटरशेड एल्गोरिथ्म जैसे उपकरणों के समतुल्य कार्यान्वयन प्रदान करता है।
मेरी राय में MATLAB बेहतर इंटरैक्टिव ग्राफिक्स क्षमता प्रदान करता है। हालाँकि, मुझे लगता है कि आर एप्लीकेशन के आधार पर बेहतर स्थिर प्रिंट-गुणवत्ता वाले ग्राफिक्स का उत्पादन करता है। MATLAB का प्रतीकात्मक गणित टूलबॉक्स R Racas या rSymPy जैसे R समकक्षों की तुलना में बेहतर एकीकृत और अधिक सक्षम है। MATLAB कंपाइलर का अस्तित्व भी MATLAB कोड पर आधारित सिस्टमों को MATLAB पर्यावरण के स्वतंत्र रूप से तैनात करने की अनुमति देता है - हालाँकि यह उपलब्धता इस बात पर निर्भर करेगी कि आपको कितने पैसे इधर-उधर फेंकने पड़ते हैं।
एक और बात जो मुझे ध्यान देनी चाहिए वह यह है कि MATLAB डिबगर मेरे द्वारा काम किए गए सर्वश्रेष्ठ में से एक है।
आर के साथ मैं जो सिद्धांत लाभ देख रहा हूं वह प्रणाली का खुलापन है और जिस आसानी से इसे बढ़ाया जा सकता है। इसके परिणामस्वरूप CRAN पर पैकेजों की एक अविश्वसनीय विविधता है। मुझे पता है कि मैथवर्क्स उपयोगकर्ता द्वारा योगदान किए गए टूलबॉक्स का भंडार भी रखता है और मैं इसकी तुलना ठीक से नहीं कर सकता क्योंकि मैंने इसका इतना इस्तेमाल नहीं किया है।
R का खुलापन संकलित कोड में लिंक करने के लिए भी विस्तारित है। कुछ समय पहले मेरे पास एक मॉडल था जिसे फोरट्रान में लिखा गया था और मैं इनपुट या प्रक्रिया परिणामों को तैयार करने में मदद करने के लिए आर-एंड-एमएटीएलबी के सामने-सामने के रूप में उपयोग करने के बीच निर्णय लेने की कोशिश कर रहा था। मैंने MEX इंटरफ़ेस के बारे में एक घंटे का संकलन कोड पढ़ने में बिताया। जब मैंने पाया कि मुझे एक अलग फोरट्रान रूटीन लिखना और बनाए रखना होगा, जिसने इंटरफ़ेस को प्रबंधित करने के लिए कुछ जटिल सूचक बाजीगरी की, तो मैंने MATLAB को आश्रय दिया।
R इंटरफ़ेस में कॉलिंग हैं। .Fortran ([सबरूटीन नाम], [तर्क सूची]) और बस तेज और क्लीनर है।
R पर MATLAB का एक बड़ा फायदा MATLAB प्रलेखन की गुणवत्ता है। खुला स्रोत होने के नाते, आर इस संबंध में पीड़ित है, कई खुले स्रोत परियोजनाओं के लिए एक सामान्य विशेषता है।
आर, हालांकि, एक बहुत ही उपयोगी वातावरण और भाषा है। यह जैव सूचना विज्ञान समुदाय में व्यापक रूप से उपयोग किया जाता है और इस डोमेन में उपयोगी कई पैकेज हैं।
R का एक विकल्प ऑक्टेव ( http://www.gnu.org/software/octave/ ) है जो MATLAB के समान है, यह MATLAB स्क्रिप्ट चला सकता है।
मेरे अनुभव में MATLAB से पायथन में जाना एक आसान संक्रमण है - स्टाइल के फीचर्स और फीचर्स के मामले में numpy / scipy के साथ Python MATLAB के करीब है। ओपन सोर्स डायरेक्ट MATLAB क्लोन ऑक्टेव और सिलेब भी हैं ।
निश्चित रूप से बहुत कुछ है कि MATLAB कर सकता है कि R नहीं कर सकता - मेरे क्षेत्र में MATLAB का उपयोग वास्तविक समय डेटा अधिग्रहण के लिए बहुत किया जाता है - अधिकांश हार्डवेयर कंपनियों में MATLAB इंटरफेस शामिल हैं। जबकि यह संभव हो सकता है आरआई के साथ यह कल्पना एक बहुत अधिक शामिल होगा। साथ ही सिमुलिंक कार्यक्षमता का एक पूरा क्षेत्र प्रदान करता है जो मुझे लगता है कि आर से गायब है। मुझे यकीन है कि वहाँ अधिक है लेकिन मैं आर से परिचित नहीं हूं।
संक्षिप्त उत्तर: नहीं, बिल्कुल नहीं। जबकि गणितीय सॉफ़्टवेयर पैकेजों के किसी भी सेट में उनके ओवरलैप होंगे, वे हमेशा कुछ समस्या डोमेन के लिए पूर्वाग्रह रखेंगे। आप इन पैकेजों में से किसी एक का उपयोग करना चाहते हैं या नहीं, ये पूर्वाग्रह दृढ़ता से बताते हैं।
MATLAB क्या कर सकता है इसका एक उदाहरण आर प्रोसेसिंग सिग्नल / अधिग्रहण और नियंत्रण के लिए वास्तविक समय हार्डवेयर के लिए इंटरफ़ेस नहीं है। MATLAB में एक सिमुलिंक मॉडल को आपके मशीन पर सिमुलेशन में चलाने के लिए कॉन्फ़िगर किया जा सकता है कोड को संकलित करने से पहले एक वास्तविक सिस्टम पर इनपुट के रूप में मापा गया डेटा लेने और उपयुक्त आउटपुट की गणना करने के लिए (जो एक नियंत्रण प्रणाली के सिमुलेशन से पहले था अब पूरी तरह से काम कर रहा है) एक)। आपकी मशीन में उपयुक्त हार्डवेयर बोर्ड के साथ, आप एक पीसी के माध्यम से वास्तविक समय नियंत्रण प्रणाली चला सकते हैं।
आर, इसके विपरीत, दृढ़ता से आंकड़ों की भूमिका में निर्धारित होता है, जहां मुझे यकीन है कि यह बाहर करता है- MATLAB क्या कर सकता है। इसी तरह, प्रतीकात्मक गणित में गणितज्ञ MATLAB से बेहतर है; सामान्य प्रोग्रामिंग में पायथन MATLAB से बेहतर है; gnuplot वास्तव में रेखांकन बनाने में उन सभी से बेहतर है (एर, मुझे लगता है); और इसी तरह।
मैं ऊपर दिए गए कई उत्तरों से सहमत हूं। चूंकि उत्तर MATLAB और R क्षमताओं के प्रसार के लिए विशिष्ट है, इसलिए मैं एक बहुत ही महत्वपूर्ण एक का उल्लेख करूंगा: MATLAB में एक JVM शामिल है और इसमें जावा के साथ निर्दोष और मजबूत अंतर है। पुस्तकालयों के जावा के सभी विशाल ब्रह्मांड MATLAB उपयोगकर्ता के लिए सुलभ हैं। MATLAB IDE का उपयोग लगभग एक गरीब व्यक्ति के ग्रहण के रूप में किया जा सकता है। इसकी तुलना में, इसके निर्माता (रोमन फ्रेंकोइस) के बहुत मूल्यवान प्रयास के बावजूद, आरजेवा बहुत अपरिपक्व है।
हम नहीं कर सकते क्योंकि यह हमारे ग्राहकों द्वारा अपेक्षित / अपेक्षित है।
Sqldf पैकेज के साथ, आर न केवल आंकड़ों के लिए सक्षम है, बल्कि गंभीर डेटा खनन भी है - यह मानते हुए कि आपकी मशीन पर पर्याप्त रैम है।
और RServe पैकेज के साथ R एक नियमित टीसीपी / आईपी सर्वर बन जाता है; इसलिए आप R को जावा से बाहर कर सकते हैं (या अगर आपके पास कोई अन्य भाषा है)। J को बाहर या R को कॉल करने के लिए R में एक पैकेज भी है।
MATLAB और R दोनों के उपयोगकर्ता के रूप में, मुझे लगता है कि वे बहुत अलग अनुप्रयोग हैं। मेरे पास कंप्यूटर विज्ञान आदि में एक पृष्ठभूमि है, और मैं यह सोचने में मदद नहीं कर सकता कि आर सांख्यिकीविदों के लिए है, जबकि MATLAB प्रोग्रामर के लिए प्रोग्रामर द्वारा है।
आर सभी प्रकार के सांख्यिकीय सामानों की कल्पना करना और उनकी गणना करना बहुत आसान बनाता है, लेकिन अगर यह मेरे ऊपर था, तो इससे संबंधित किसी भी सिग्नल प्रोसेसिंग को लागू करने के लिए मैं इसका उपयोग नहीं करूंगा।
संक्षेप में, यदि आप आंकड़े करना चाहते हैं, तो R का उपयोग करें। यदि आप प्रोग्राम करना चाहते हैं, तो MATLAB या कुछ प्रोग्रामिंग भाषा का उपयोग करें।
R
एक प्रोग्रामिंग भाषा है।
इंटरएक्टिव ग्राफिक्स के लिए समर्थन मैटलैब में आर से बेहतर है। मैं एक भाषा के रूप में मैटलैब से नफरत करता हूं, लेकिन मुझे जलन होती है जब मैं देखता हूं कि इसके उपयोगकर्ता माउस ऑपरेशन के साथ डेटा का पता कैसे लगा सकते हैं, जबकि मैं नए मूल्यों के लिए आदेशों को दोहराने में व्यस्त हूं xlim
। मतलाब भी बहु-पैनल भूखंडों को कार्य के लिए किसी भी आर तरीकों से बेहतर तरीके से संभालता है। आम तौर पर, आर ग्राफिक्स में 1960 का अनुभव होता है। यह प्रकाशन के लिए ठीक है, लेकिन डेटा के इंटरैक्टिव अन्वेषण के लिए सबसे अच्छा समाधान नहीं है।