मैं गणित से एक मैटलैब फ़ंक्शन को कॉल करना चाहता हूं। यह कैसे करना सबसे अच्छा है?गणित से एक matlab फ़ंक्शन कैसे शुरू करें?
मुझे ऐसा करने का एक तरीका बताते हुए ancient post on Wolfram site मिला है, क्या यह अभी भी दोनों को जोड़ने का तरीका है?
मैं गणित से एक मैटलैब फ़ंक्शन को कॉल करना चाहता हूं। यह कैसे करना सबसे अच्छा है?गणित से एक matlab फ़ंक्शन कैसे शुरू करें?
मुझे ऐसा करने का एक तरीका बताते हुए ancient post on Wolfram site मिला है, क्या यह अभी भी दोनों को जोड़ने का तरीका है?
आप mEngine उपयोग कर सकते हैं। प्रीकंपिल्ड विंडोज मैथलिंक निष्पादन योग्य मैथमैटिका 8 के साथ काम करता है। विंडोज़ पर आपको add MATLAB to the system path की आवश्यकता हो सकती है।
नेटलिंक विधि की तुलना में इसका लाभ यह है कि गणित और MATLAB के बीच चर स्थानांतरित करना mGet["x"]
या mPut["x"]
जितना आसान होगा। यद्यपि यह नेटलिंक के साथ भी संभव हो सकता है, एमईएनजीन का लाभ यह है कि आपको इसे स्वयं लागू करने की आवश्यकता नहीं है (जो मुझे अच्छा है अगर आपको COM या .NET के बारे में कुछ भी पता नहीं है)
कृपया [यह अन्य उत्तर] देखें (http://stackoverflow.com/a/16329357/695132) [MATLink] (http://matlink.org) के बारे में। MATLink mEngine से प्रेरित था और इससे कहीं बेहतर है (कार्यक्षमता और विश्वसनीयता में)। – Szabolcs
मुझे लगता है कि यह सामान्य रूप से एक कठिन समस्या है, लेकिन किसी विशेष मामले के लिए थोड़ा प्रोग्रामिंग के साथ आसानी से हल किया जा सकता है। मैं सी # के साथ प्रदर्शन करेंगे।
मैं इस तरह की कॉल की एक स्ट्रिंग का निर्माण करूंगा।
सब कुछ मैं एक विशिष्ट समस्या के लिए सी # कोड की 50 से कम लाइनों में ऐसा कर सकता था। दूसरे शब्दों में, बहुत अधिक काम नहीं है। संभावित समस्याएं डेटा रूपांतरण हैं, लेकिन यदि आप डेटा के पीछे और आगे भेजने के लिए भेजना चाहते हैं, मैथलिंक बॉक्स से बहुत कुछ प्रदान करता है। इसी प्रकार मैथमैटिका को जावा के माध्यम से MATLAB से जोड़ा जा सकता है, हालांकि मैंने इसे स्वयं नहीं किया है।
शायद पायथन के माध्यम से सबसे आसान कनेक्शन बनाया जा सकता है। मैथमैटिका मैथलिंक पाइथन लाइब्रेरी प्रदान करता है, मैथमैटिका \ 8.0 \ सिस्टमफाइल \ लिंक \ NETLink पर स्थित है, और मैटलैब में पीमैट नामक एक एडन लाइब्रेरी है, जिसे here डाउनलोड किया जा सकता है, लेकिन यह पैकेज लंबे समय तक बनाए रखा नहीं गया है समय और केवल Matlabs के सबसे प्राचीन का समर्थन करता है।
वैकल्पिक रूप से आप एसएजी और/या numpy के पक्ष में पूरी तरह से Matlab से गुजर सकते हैं।
आप इस के लिए NETLink
कोशिश कर सकते हैं कम से कम Windows के तहत:
In[1]:= Needs["NETLink`"]
matlab = CreateCOMObject["matlab.application"]
Out[2]= «NETObject[COMInterface[MLApp.DIMLApp]]»
और फिर आप Matlab कार्यों आह्वान कर सकते हैं:
In[4]:= [email protected]["version"]
Out[4]= "
ans =
7.9.0.529 (R2009b)
"
In[5]:= [email protected]["a=2"]
[email protected]["a*2"]
Out[5]= "
a =
2
"
Out[6]= "
ans =
4
"
HTH
अब है इसके लिए एक नया पैकेज --- MATLink। यह सबसे पूरा पैकेज है जिसे मैं जानता हूं। (अस्वीकरण: मैं MATLink के डेवलपर्स में से एक हूं।)
MATLink आप की सुविधा देता है ...
मूल फोन MATLAB कार्यों मेथेमेटिका
दो प्रणालियोंअधिकांश MATLAB डेटा प्रकार समर्थित हैं, सहित के बीच
हस्तांतरण डेटा फार्म स्पैस सरणी, structs और कोशिकाओं।
एक और पूरा विवरण उपलब्ध है here। विस्तृत उदाहरणों के लिए, website देखें।
+1 मुझे यह जानना अच्छा लगेगा कि यह कैसे करना है, मैटलैब में कुछ चीजें आसान हैं और कुछ चीजें गणित में आसान हैं! – mor22
जॉन, क्या आपने मई 2013 में पोस्ट किए गए दूसरे उत्तर की कोशिश की है? – Szabolcs
@ स्ज़ाबॉल्क्स नोप, मैंने पोस्ट किया था जब मैं एक नई नौकरी पर गया था, जहां मैं सिर्फ मैटलैब का उपयोग करता हूं। मेरे पास घर पर गणित है, लेकिन घर पर इस प्रकार की क्रॉस स्क्रिप्टिंग करने की आवश्यकता नहीं है। – John