MATLAB प्रोग्रामिंग सीखने के लिए ऑक्टेव का उपयोग करना संभव है?


23

मैं MATLAB प्रोग्रामिंग सीखना चाहता हूं ताकि मैं अपने और साथ ही कुछ researh / विश्लेषण आयोजित कर सकूं, ताकि मैं कुछ MATLAB लिपियों का अध्ययन / संशोधन कर सकूं जिन्हें मैंने ऑनलाइन पाया है आदि।

हालाँकि, समस्या यह है कि मैं MATLAB बर्दाश्त नहीं कर सकता। GNU ऑक्टेव, जो मैंने सुना है, वह काफी MATLAB कंपेटिबल है। ऑक्टेव के साथ चुनौती हालांकि यह है कि प्रलेखन बहुत विरल है।

तो एक तरफ MATLAB, अत्यधिक महंगा (-ve) है, लेकिन ऑनलाइन, () में बहुत सारे अच्छे प्रलेखन, ट्यूटोरियल और स्क्रिप्ट हैं, जबकि ऑक्टेव मुक्त (बीयर के रूप में) है, भले ही (समझ में आता है) इसमें व्यापक प्रलेखन का अभाव है, आदि। ।

मैं ऑक्टेव को डाउनलोड करने और स्थापित करने के बारे में सोच रहा हूं, लेकिन मुझे जाने में मदद करने के लिए MATLAB प्रलेखन (और स्क्रिप्ट) का उपयोग कर रहा हूं। मुझे पता है कि ऑक्टेव और MATLAB के बीच कुछ अंतर हैं - मैं जो काम करने की कोशिश कर रहा हूं वह यह है कि क्या मतभेद मेरे प्रयासों को प्रभावी ढंग से विफल करने के लिए पर्याप्त हैं "ऑक्टेव का उपयोग करके MATLAB सीखें"।

किसी भी रचनात्मक प्रतिक्रिया का स्वागत है।


3
स्वागत है, होमनकुलस। हम दो महीने से कम उम्र के हैं और अभी तक बहुत सारे टैग नहीं हैं। मैंने आपके लिए ऑक्टेव टैग जोड़ा है।
डेविड केचेसन

एक अन्य विकल्प, यदि आपका लक्ष्य केवल आपके व्यक्तिगत उपयोग के लिए कम्प्यूटेशनल सॉफ़्टवेयर का उपयोग करना है, तो वह है गणितज्ञ। पूर्ण पूर्ण संस्करण $ 300 से कम के व्यक्तिगत उपयोग के लिए उपलब्ध है। मुझे नहीं पता कि यह आपके बजट के भीतर है या नहीं। लेकिन इसके लिए किसी को क्या मिलता है (पूर्ण व्यावसायिक संस्करण के रूप में एक ही संस्करण), यह इसके लायक है जो मुझे लगता है। नोट: यदि आप छात्र हैं, तो Matlab और Mathematica छात्रों के लिए समान मूल्य के लिए भी उपलब्ध हैं।
नासिर

1
एक शब्द में, हाँ। भाषाओं के बीच का अंतर बहुत छोटा है। Matlab के लिए प्रलेखन Mathworks.com (Matlab के निर्माताओं) से इंटरनेट पर मुफ्त में उपलब्ध है। मुख्य बात जो आपको याद आएगी वह है मटलब की GUI। ऑक्टेव के लिए एक अच्छा GUI खोजना मुश्किल है। ऑक्टेव के विकास संस्करण में एक जीयूआई है लेकिन इसे स्थापित करना मुश्किल है। मैंने QtOctave स्थापित किया, जो मुझे outsch.org/2011/01/29/qtoctave-0-10-1-for-windows पर मिला । यह ठीक काम करता है, सिवाय स्टार्टअप पर हमेशा एक त्रुटि संदेश है, और मैं पूरी तरह से ऑक्टेव को मारे बिना एक प्रक्रिया को समाप्त नहीं कर सकता। मैं नोटपैड ++ ...
स्टीफन स्मिथ

... इसके बजाय QtOctave के संपादक, और यह बेहतर काम करता है। एक और बात, ऑक्टेव और मतलाब के बीच के अंतर, जैसे वे हैं, बड़े पैमाने पर मुफ्त वेब साइटों पर प्रलेखित हैं।
स्टीफन स्मिथ

चूंकि मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है, इसलिए मैं स्वीकार किए गए उत्तर में एक बयान जोड़ना चाहूंगा: "बेशक, MATLAB की विशेषताएं हैं (विशेष रूप से टूलबॉक्स में, लेकिन ऑक्टेव के पास वे नहीं हैं)" पूरी तरह से है गलत। ऑक्टेव में ऑक्टेव-फोर्ज के पैकेज का एक समृद्ध सेट है जिसमें मतलब के हर पैकेज फ़ंक्शन शामिल हैं जिनकी मुझे कभी आवश्यकता थी (मैं छवि प्रसंस्करण और चिकित्सा छवियों के लिए अनुकूलन में काम करता हूं, और काफी कुछ टूलबॉक्स / पैकेज की आवश्यकता है)। इसके अलावा, स्वीकृत उत्तर एक प्रमुख मुद्दे को संबोधित नहीं करता है, जो यह है कि प्रश्नकर्ता जो भी कोड लिखता है वह प्रयोगशाला या
इंडिवी

जवाबों:


24

डिस्क्लेमर: मुझे कभी-कभी गुस्सा आता है जब कोई मुझे यह बताने की कोशिश करता है कि मेरे द्वारा पूछे गए सवाल का जवाब देने के बजाय वे क्या सोचते हैं। लेकिन मैं एक जोखिम लेने जा रहा हूं और आपके लिए एक विकल्प सुझाऊंगा।

मैं पायथन के वैज्ञानिक कंप्यूटिंग पैकेजों को देखने का सुझाव दूंगा : numpy , matplotlib और scipy । साथ में, वे आपको MATLAB की अधिकांश मुख्य कार्यक्षमता प्रदान करते हैं (कुछ मामलों में वे आपको MATLAB से अधिक देते हैं)। वे स्वतंत्र और खुले स्रोत हैं, और आजकल ऑक्टेव की तुलना में व्यापक उपयोगकर्ता आधार हो सकता है। पायथन में अधिकांश वैज्ञानिक कंप्यूटिंग अवसंरचना का समर्थन एग्जॉटिक इंक द्वारा किया जाता है , और मैं सुझाव दूंगा कि आप उनके नि: शुल्क उत्साहित पायथन डिस्ट्रीब्यूशन को स्थापित करें , जिसमें मेरे द्वारा बताए गए सभी तीन पैकेज और अधिक शामिल हैं।

बेशक, MATLAB की विशेषताएं हैं (विशेष रूप से टूलबॉक्स में, लेकिन ऑक्टेव में वे नहीं हैं) जिसमें पायथन की कमी है। लेकिन मैं अपने अधिकांश काम के लिए निचले स्तर की भाषाओं के साथ संयोजन में पायथन का उपयोग करता हूं, और यह मुझे MATLAB के रूप में लगभग सुविधाजनक भाषा में प्रोग्राम करने की अनुमति देता है, एक उपयोगी पैकेज के होस्ट के साथ इंटरफ़ेस जो MATLAB के पास नहीं है, और चलाने के लिए। सुपरकंप्यूटर पर समान आसानी से पढ़ा जाने वाला कोड।

संपादित करें : आप कंटिन्यू एनालिटिक्स से एनाकोंडा पायथन वितरण का भी प्रयास करना चाह सकते हैं । एक मुफ्त संस्करण है जिसमें उपरोक्त सभी पैकेज शामिल हैं और बहुत कुछ।


7
यह इस बात पर निर्भर करता है कि क्या होमुनकुलस MATLAB सीखना चाहता है क्योंकि उन्हें विशेष रूप से MATLAB (उदाहरण के लिए, नौकरी के लिए) सीखने की आवश्यकता है, या वे MATLAB सीखना चाहते हैं वैज्ञानिक कंप्यूटिंग करने के लिए, इस मामले में वित्तीय बाधाओं को देखते हुए पायथन बेहतर विकल्प हो सकता है।
ज्योफ ऑक्सीबेरी

3
@DavidKetcheson: मैं वास्तव में numpy और matplotlib (चूंकि मैं पायथन से परिचित हूं) का उपयोग कर रहा हूं। हालाँकि, मैं बहुत सारे MATLAB कोड प्राप्त करता रहता हूं, इसलिए मैं उपलब्ध MATLAB लिपियों आदि (लाइसेंस शुल्क के लिए कांटा किए बिना) से सीखना चाहूंगा। MATLAB प्रोग्रामिंग को अपनी टोपी में एक अतिरिक्त पंख के रूप में रखने के लिए हमेशा अच्छा होने के अलावा - यही कारण है कि मैं पिछले दरवाजे (ऑक्टेव का उपयोग करके) के माध्यम से MATLAB सीखने के बारे में सोच रहा था।
होम्युनकुलस रेटिकुल्ली

यहां अजगर के लिए +1, यह एक वास्तविक प्रोग्रामिंग भाषा भी है :) हालांकि मुझे यह कहना चाहिए कि मैंने MATLAB सीखकर शुरुआत की थी।
बॉयफ्रेल

ऑक्टेव एक मुफ्त लाइसेंस के साथ एक मैटलैब क्लोन है। इसकी भाषा वाक्य रचना लगभग पूरी तरह से संगत है। पायथन मैटलैब और ऑक्टेव की तुलना में एक बहुत अलग समस्या का हल करता है। इसकी वाक्य रचना अधिक जटिल और क्रियात्मक है क्योंकि भाषा अधिक बहुमुखी है। रेखीय प्रणालियों के प्रोटोटाइप के लिए आप मैटलैब या ऑक्टेव का उपयोग करेंगे, फिर उत्पादन-तैयार सॉफ्टवेयर को लागू करने के लिए आप अजगर / जावा में जाएंगे। मतलाब से पायथन या आर पर स्विच करने से पहले, आपको समझना चाहिए कि आप क्या कर रहे हैं।
FistOfFury

@FistOfFury मैं लीनियर सिस्टम के लिए प्योर पायथन 3 का उपयोग करता हूं। उत्पादन के लिए तैयार सॉफ्टवेयर आप आमतौर पर सी / फोरट्रान या एम्बेडेड के लिए जाते हैं।
पर्कस

17

जीएनयू ऑक्टेव "ज्यादातर मैटलैब के साथ संगत है", कुछ सूक्ष्मता का मतलब है कि सभी स्क्रिप्ट MATLAB से ऑक्टेव तक पोर्टेबल नहीं हैं।

यह पढ़ने लायक है भाषा के लिए दस्तावेज़ और / या में अनुकूलता नोटों पूछे जाने वाले प्रश्न या पर wikibooksपोर्टिंग नोट्स भी हैं

MATLAB टूलबॉक्स के समान पैकेज मौजूद हैं, लेकिन आपको उनकी जाँच करने की आवश्यकता होगी कि वे कितने समान हैं। इसके अलावा रूपांतरण लिपियों में भी प्रयास हैं जो दो भाषाओं के बीच के अंतर का ध्यान रखते हैं, लेकिन मेरी जानकारी में कोई भी सही नहीं है।


12

हां आप Octave के माध्यम से MATLAB सीख सकते हैं। लेकिन ऑक्टेव सिंटैक्स आधुनिक स्क्रिप्टिंग भाषाओं के अनुरूप कम प्रतिबंधात्मक और अधिक है। MATLAB इस संबंध में पीछे लगता है। इस विकी लिंक MATLAB प्रोग्रामिंग देखें / ऑक्टेव और MATLAB के बीच अंतर

मेरे लिए एक और बड़ा अंतर MATLAB के लिए कुछ पुस्तकालयों की उपलब्धता है, लेकिन ऑक्टेव के लिए नहीं।


9

आम तौर पर एम-भाषा प्रोग्रामिंग सीखने और MATLAB कैसे काम करता है, इसके लिए, ऑक्टेव सिर्फ ठीक है। यदि आपको अपने काम के हिस्से के रूप में एक विशेष टूलबॉक्स की आवश्यकता है, हालांकि, और किसी ने भी इसके मुफ्त संस्करण को लागू नहीं किया है, तो आप भाग्य से बाहर हैं।

MATLAB का एक छात्र संस्करण इतना महंगा नहीं है। यदि आप विश्वविद्यालय में हैं, तो यह संभव है कि उनके पास साइट लाइसेंस हो। आपको दोनों संभावनाओं पर गौर करना चाहिए।


7

मैंने अतीत में कोड के समान टुकड़ों पर ऑक्टेव और MATLAB का परस्पर विनिमय किया है; मुझे संगतता के साथ कोई समस्या नहीं है। मुख्य अंतर जहां तक ​​मैं बता सकता हूं:

  1. MATLAB बाइट संकलित किया जा सकता है, और थोड़ा तेज है।
  2. ऑक्टेव #या तो या %टिप्पणियों के लिए उपयोग कर सकते हैं , मतलाब केवल उपयोग करता है%
  3. ऑक्टेव बहुत बेहतर भूखंडों का उत्पादन करता है

1
मुझे यह सुनने में दिलचस्पी होगी कि किस संदर्भ में ओक्टेव बहुत बेहतर भूखंडों का उत्पादन करता है (यह नहीं कि मैं विशेष रूप से MATLAB भूखंडों को पसंद करता हूं ...)।
डिर्क

ऑक्टेव एक बैकएंड के रूप में gnuplot का उपयोग करता है। यह सिर्फ यह हो सकता है कि मुझे gnuplot अधिक पसंद है। केवल विशिष्ट बात जो मैं सोच सकता हूं वह यह है कि मुझे एंटीलियासिंग प्राप्त करने के लिए कुछ विशेष करने की आवश्यकता नहीं है; यह स्वचालित रूप से सक्षम है।
दान

1
ऑक्टेव प्लॉटिंग के साथ मेरा अनुभव मिश्रित रहा है, और MATLAB के साथ एक या दो चीज़ों को सीखने के बाद मुझे इससे बाहर निकलने वाले ग्राफिक्स की गुणवत्ता बहुत अच्छी लगी है। हो सकता है कि आपके पास कुछ उदाहरण हों जहां ऑक्टेव ने मातब को इसके लिए मात दी थी? एसो, बाइट-संकलित? क्या आप MATLAB कोडर के बारे में बात कर रहे हैं? आप उस उपकरण में केवल मनमाने ढंग से MATLAB कोड नहीं डाल सकते हैं, और अगर मुझे याद है कि यह एक महंगा उपकरण है, तो निश्चित रूप से एक छात्र लाइसेंस प्राप्त संस्करण में उपलब्ध नहीं है।
रीड.टेकसन

व्हाट्स, मैं देखता हूं कि आप संकलन के लिए क्या मायने रखते हैं। मेरी गलती।
रीड.टेकसन 20

मुझे खेद है लेकिन मतलाब के बाइट-संकलित होने का क्या मतलब है?
user17915

6

यह वास्तव में संभव है, खासकर यदि आप GUI का उपयोग करते हैं, जैसे GUIOctave । एक और भाषा जो आपको उपयोगी लग सकती है क्योंकि इसके लिए कई पैकेज लिखे गए हैं। R। R भाषा के लिए एक GUI भी है, जिसे RStudio कहा जाता है, और R और MatLab के बीच अनुवाद दस्तावेज़ है


5

आपके प्रश्न के बारे में:
मैं हां कहूंगा। सिर्फ इसलिए कि प्रतिमान और सिद्धांत समान हैं। वाक्यविन्यास में अंतर उपेक्षित हैं और एक धोखा पत्र में संक्षेपित किया जा सकता है (यदि आप मुख्य रूप से MATLAB के साथ एक दिन काम कर रहे हैं)।


एक विकल्प के लिए एक और सुझाव:
MATLAB विकल्प के रूप में मैं SciLab का उपयोग कर रहा हूं । यह ओक्टेव के रूप में स्वतंत्र है, इसमें एक सभ्य समुदाय सहायता और सहायता प्रदान करता है और यह प्रलेखन बहुत अच्छा है। बिल्ड-इन डॉक्यूमेंटेशन और फ़ंक्शंस के लिए मदद MATLAB के समान है। (मुझे जो सबसे अधिक पसंद है वह एक क्लिक से उदाहरणों को निष्पादित करने की क्षमता है)। वाक्य रचना MATLAB के समान है।

SciLab और MATLAB के बीच समानता और अंतर के बारे में, यह दस्तावेज़ आपके लिए रुचि का हो सकता है: Matlab उपयोगकर्ता के दृष्टिकोण, Eike Rietsch, मई 2010 (PDF) से सिलाब का एक परिचय

MATLAB पर SciLab के लिए एक और प्लस: स्टार्ट-अप और GUI बहुत तेज है। मैंने अभी तक ऑक्टेव की कोशिश नहीं की है।


1
मैं साइलैब के एक प्रशंसक नहीं हूँ, मेरी पहली छाप वाक्य रचना और बुनियादी कार्यों (Matlab के सापेक्ष) में छोटे मतभेद का एक बहुत वहाँ थे, लेकिन में से कोई भी था कि awsome अजगर असंगति की भरपाई के लिए किया है।
mdaoust

हम्म ... आपकी टिप्पणी और डेविड केचेसन के जवाब के अनुसार यह वास्तव में पायथन की कोशिश करने के लायक है।
Torbjörn

5

व्यावहारिक उदाहरण:

मैं काम पर MATLAB का उपयोग करता हूं, और मैंने पिछले सेमेस्टर में स्टैनफोर्ड की मुफ्त ऑनलाइन मशीन सीखने की कक्षा ली ।

मैंने ऑक्टेव में सभी होमवर्क किया।

मैंने केवल 2 अंतरों को देखा (मैं केवल मुख्य कार्यक्षमता का उपयोग कर रहा था):

  • ऑक्टेव थोड़ा अधिक लचीला है कि किस प्रकार के भावों को अनुक्रमित किया जा सकता है। इसलिए यदि आप इसका लाभ उठाते हैं, तो आपका कोड पोर्टेबल नहीं होगा।
  • मेरे इंस्टॉलेशन में pcolor () और इमेज () प्लॉट यथोचित आकार के सरणियों के लिए काम नहीं करते हैं, जैसे 1000x1000, छोटे वाले, जैसे 50x50, ठीक काम करते हैं।

5

MATLAB की प्रोग्रामिंग भाषा की ऑक्टेव की व्याख्या में कुछ सूक्ष्म अंतर हैं। ऑक्टेव क्रमशः बंद करने और बयान करने के लिए " endif" और " endwhile" का उपयोग करता है। ऑक्टेव आपको कमांड लाइन पर फ़ंक्शन घोषित करने की अनुमति देता है। हालाँकि, यह कुछ भी है कि MATLAB पार्स भी पार्स करना चाहिए, इसलिए यदि आप MATLAB की प्रोग्रामिंग भाषा से चिपके रहते हैं, तो आपको ठीक होना चाहिए।ifwhile

ज्ञात हो कि दो कार्यक्रमों के बीच सबसे बड़ा अंतर अंतर्निहित कार्यों में होता है जो अधिकांश संख्यात्मक भारी-उठाने, जैसे " quad", " ode15s" और ऐसे होते हैं। हालांकि, इन सभी कार्यों को " help" कमांड का उपयोग करते समय अच्छी तरह से प्रलेखित किया जाना चाहिए । ऑक्टेव के लिए मेलिंग सूचियां भी हैं, आपके पास अधिक विशिष्ट प्रश्न होने चाहिए जो ऑनलाइन सहायता द्वारा कवर नहीं किए गए हैं।


3
ऑक्टेव को छोरों और यदि स्टेटमेंट्स के दौरान दोनों के अंत के लिए "अंत" को स्वीकार करने से अधिक खुशी है।
Bill Barth

4

हाँ आप बिल्कुल कर सकते हैं, मैंने किया। MATLAB से बाहर की अधिकांश शक्ति हालांकि टूलबॉक्स और बिल्डरों का उपयोग करने के लिए बेहद आसान है, जो ऑक्टेव में समकक्ष हो सकते हैं या नहीं हो सकते हैं।

यह भी जान लें कि जहां बेस लैंग्वेज स्वयं संगत हैं (MATLAB में नए ओओ फीचर्स को छोड़कर), ऑक्टेव में सिंटैक्स के लिए कुछ 'अतिरिक्त' हैं, जैसे कि NEQ के लिए "! =" का उपयोग करने में सक्षम है, और यह भी कुछ है। वैकल्पिक डिफ़ॉल्ट व्यवहार जैसे कि यह इनलाइन फ़ंक्शन को कैसे पार करता है। ये छोटी-छोटी बातें हैं, जिनके कारण ऑक्टेव कोड बैट से दूर MATLAB में नहीं चलेंगे जब तक कि आपने उस व्यवहार पर भरोसा करने से बचने के लिए ध्यान नहीं दिया है।

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


2

सबसे अच्छी मुक्त भाषा जिसमें MATLAB जैसी वाक्य रचना है जूलिया है। यह तेज़ भी है और एक अधिक व्यापक पैकेज सिस्टम है (अन्य कारणों के अलावा यह बेहतर क्यों है ...), लेकिन रैखिक बीजगणित वाक्यविन्यास लगभग समान है (कई एल्गोरिदम आप A[i]अनुक्रमित करने के लिए बदलकर MATLAB में अनुवाद कर सकते हैं A(i))। मेरा मानना ​​है कि यह अभी सीखने के लिए सबसे अच्छी भाषा है, और आप इसे केवल "गलती से MATLAB जानते हैं"।


0

हां, आप ऑक्टेव का उपयोग करके मैटलैब सीख सकते हैं। बेशक कुछ सीमाएँ हैं।

ऑक्टेव और मतलाब अपने वाक्यविन्यास का एक हिस्सा साझा करते हैं। उस संबंध में दोनों विनिमेय हैं। मैटलैब में अनुभव अधिक समृद्ध और उपयोगकर्ता के अनुकूल है, खासकर ग्राफिक्स के साथ काम करते समय, हालांकि ऑक्टेव में एक नया ग्राफिकल यूजर इंटरफेस (जीयूआई) है जो बीटा में है। ऑक्टेव में सुधार के लिए ग्राफिकल वातावरण के रूप में दो प्रणालियों को संभवतः आगे बढ़ाया जाएगा।

कौरसेरा पर बहुत सारे मुफ्त पाठ्यक्रम हैं जो आपको पाठ्यक्रम की अवधि के लिए एक मुफ्त अस्थाई मटलब छात्र लाइसेंस प्रदान करते हैं। मशीन सीखने के पाठ्यक्रमों की खोज करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.