2010-05-12 13 views
8

मैं .NET में एक प्रोग्राम लिख रहा हूं जिसे आर या MATLAB के सांख्यिकीय और डेटा विश्लेषण कार्यों का उपयोग करने की आवश्यकता होगी। मैंने आर का उपयोग किया है लेकिन अब मैं MATLAB पर जाने पर विचार कर रहा हूं क्योंकि इसमें नेट नेट कंपाइलर है जबकि आर केवल COM ऑब्जेक्ट्स के माध्यम से इंटरफ़ेस कर सकता है। क्या कोई भी किसी भी तरह से जाने की सिफारिश कर सकता है? मुझे पता है कि MATLAB आर से असीम रूप से अधिक महंगा है (चूंकि आर मुक्त है) लेकिन मुझे लगता है कि एक आसान विकास चक्र में अनुवाद कर सकते हैं?.NET MATLAB या R के साथ मिलकर?

+0

आप अपने सॉफ़्टवेयर बेच रहे हैं आप यह सुनिश्चित करें कि आर के GPL2 लाइसेंस अपने सॉफ्टवेयर के साथ संगत है बनाने की आवश्यकता होगी है। –

उत्तर

3

आपने तीन दृष्टिकोणों का वर्णन किया है: मैटलैब के लिए .NET बिल्डर का उपयोग करें, एक COM ऑब्जेक्ट के रूप में मैटलैब का उपयोग करें, और आर को COM ऑब्जेक्ट के रूप में उपयोग करें। प्रत्येक के लिए लागत अलग हैं।

मैटलैब .NET बिल्डर आपको .NET ऑब्जेक्ट्स बनाने देता है, जिसे आप सीधे .NET से कॉल कर सकते हैं। इसका एक फायदा यह है कि आप उन वस्तुओं को उन मशीनों पर तैनात कर सकते हैं जिनके पास लक्ष्य पर स्वतंत्र रूप से पुनर्वितरण योग्य गणित एमसीआर स्थापित करके मैटलैब स्थापित नहीं है। इससे आपको एक मैटलैब लाइसेंस और मैटलैब .NET बिल्डर की लागत आएगी। टिप्पणियों में, इस दृष्टिकोण के लिए शार्पी ~ $ 12.8K की कुल लागत उद्धृत करते हैं, और रिची कपास एमसीआर के लिए ~ 200 एमबी उद्धृत करता है।

एक और तरीका Matlab को आपके .NET कोड से COM ऑब्जेक्ट के रूप में कॉल करना है। इस दृष्टिकोण here के लिए कुछ दस्तावेज हैं। यह एक मशीन के लिए सस्ता है क्योंकि आपको .NET बिल्डर को खरीदने की ज़रूरत नहीं है। लेकिन यदि आप कई लक्ष्यों पर तैनाती करना चाहते हैं, तो आपको $ 2.8K/मशीन की लागत से प्रत्येक के लिए मैटलैब (प्लस लागू टूलबॉक्स) खरीदना होगा।

मैंने आर का कभी भी उपयोग नहीं किया है, लेकिन यह आरओ ऑब्जेक्ट के रूप में आर को कॉल करने के बाद के दृष्टिकोण की तरह दिखता है, here दस्तावेज किया गया है। और निश्चित रूप से आप बस अपनी सभी लक्षित मशीनों पर आर को तैनात कर सकते हैं।

मुझे लगता है कि पिछले दो दृष्टिकोण समान रूप से कठिन आसान हैं, इसलिए यदि आपको आवश्यक दिनचर्या भाषा में उपलब्ध है, तो निःशुल्क एक बहुत अच्छी कीमत है।

+2

बहुत अच्छी तुलना। पिछली बार मैंने चेक किया था, मैटलैब विकल्प आपको कंपाइलर के लिए ~ 2k प्लस अतिरिक्त 10k और प्रत्येक आंकड़े टूलबॉक्स के लिए $ 800 खर्च करेगा। आपके अनुप्रयोगों को मैटलैब संकलित रनटाइम (एमसीआर) लाइब्रेरी की एक प्रति के साथ तैनात करने की आवश्यकता होगी। आर मार्ग के साथ, आपको आवेदन के साथ आर को तैनात करना होगा, जो एमसीआर की तुलना में शायद थोड़ा बड़ा और कठिन हो सकता है। लेकिन यह मुफ़्त है। इसके अलावा, व्यक्तिगत अत्यधिक पक्षपातपूर्ण राय: आर Matlab सांख्यिकी टूलबॉक्स के साथ फर्श wipes। – Sharpie

+0

ओह, एक बात- ऐसा लगता है कि मैटलैब को एक्टिवएक्स सर्वर के रूप में कॉल करने की संभावना है, संभवतः प्रत्येक मशीन पर स्थापित होने के लिए मैटलैब की प्रतिलिपि की आवश्यकता हो सकती है- यह एप्लिकेशन $ 2800 एक पॉप होगा। – Sharpie

+0

@ सर्पी: मैटलैब कंपाइलर के साथ बनाए गए अनुप्रयोगों को केवल एक पूर्ण मैटलैब लाइसेंस के बजाय एमसीआर (अनिवार्य रूप से फ्रंटलैड के बिना मैटलैब) की आवश्यकता है। आप अपने ऐप के साथ एमसीआर को स्वतंत्र रूप से वितरित कर सकते हैं। हालांकि यह आपके कार्यक्रम के आकार में ~ 200 एमबी जोड़ता है। –

2

जाने का कौन सा तरीका उन आंकड़ों के आधार पर निर्भर करता है जिनका आप उपयोग करना चाहते हैं। जैसा कि शार्पी ने उल्लेख किया था, मैटलैब आंकड़े टूलबॉक्स आर + 2000 पैकेज के रूप में पूर्ण नहीं है। (हालांकि मैटलैब सेंट्रल फाइल एक्सचेंज में आंकड़े कोड की उचित मात्रा है।) यदि आपको खुद को मैटलैब में निम्न-स्तरीय आंकड़े दिनचर्या कोड करना है, तो आपने गलत विकल्प चुना है।

Matlab-.NET इंटरफ़ेस धीमा है, और आर-एनईटी की तुलना में थोड़ा अच्छा है, इसलिए आप इसके साथ कुछ विकास समय बचाएंगे। वास्तव में, हमारे वर्तमान कार्यस्थल की स्थापना स्टैंड-अलोन आंकड़ों के विश्लेषण के लिए आर है, और मैटलैब .NET ऐप्स के साथ एकीकरण के लिए है।

लागत के लिए, यदि आपका नियोक्ता सॉफ़्टवेयर के लिए भुगतान करने में प्रसन्न है, तो इसके बारे में चिंता न करें। यदि आप इसे अपने लिए भुगतान कर रहे हैं, तो आर के साथ जाएं। :)