विषयसूची:

मैटलैब मेक्स फ़ाइल बनाना: ३ कदम
मैटलैब मेक्स फ़ाइल बनाना: ३ कदम

वीडियो: मैटलैब मेक्स फ़ाइल बनाना: ३ कदम

वीडियो: मैटलैब मेक्स फ़ाइल बनाना: ३ कदम
वीडियो: how to make a portfolio for school project || class 7 portfolio || Angel's art creation world 2024, नवंबर
Anonim
मैटलैब मेक्स फ़ाइल बनाना
मैटलैब मेक्स फ़ाइल बनाना

मैटलैब के साथ संकलित सी कोड को एकीकृत करने के निर्देश। MEX का मतलब MATLAB निष्पादन योग्य है। एमईएक्स-फाइलें सी या फोरट्रान स्रोत कोड से उत्पन्न गतिशील रूप से जुड़ी हुई सबरूटीन्स हैं, जो संकलित होने पर, MATLAB के भीतर से उसी तरह से चलाई जा सकती हैं जैसे MATLAB M-files या अंतर्निहित फ़ंक्शन। बाहरी इंटरफ़ेस फ़ंक्शन MEX-फ़ाइलों और MATLAB के बीच डेटा स्थानांतरित करने के लिए कार्यक्षमता प्रदान करते हैं, और MATLAB फ़ंक्शन को C या फोरट्रान कोड से कॉल करने की क्षमता प्रदान करते हैं। यहां मैं आपको एक उपयोगी मैक्स फ़ाइल बनाने के लिए आवश्यक सब कुछ दिखाऊंगा। आप क्या करेंगे आवश्यकता: = एक टेक्स्ट एडिटर = मैटलैब 6.1 या इसके बाद के संस्करण (पहले के संस्करण मैक्स फाइलें भी कर सकते हैं लेकिन थोड़ा अलग प्रारूप) = मैटलैब का अपना सी कंपाइलर है जो इसके साथ आता है, लेकिन मैंने विजुअल सी ++ कंपाइलर का इस्तेमाल किया क्योंकि मेरे पास यह था।

चरण 1: कोड

कोड
कोड

मेरे द्वारा संलग्न फ़ाइल डाउनलोड करें: mextest1p0.cpp

cpp का अर्थ है c++ ……… कोड यही करता है:……… यह एक नंबर लेता है जिसे आप इसे matlab कमांड प्रॉम्प्ट से भेजते हैं। यह मैटलैब में "हैलो वर्ल्ड" प्रिंट करता है, यह मैटलैब को दो तर्क देता है, एक दो तत्व संख्या सरणी और एक स्ट्रिंग लौटाई गई संख्या सरणी का पहला तत्व 1 + है जिसे आपने इसे भेजा है, लौटा संख्या सरणी का दूसरा तत्व 2 + है जिस नंबर पर आपने इसे भेजा है ………। इसे कैसे लागू किया जाए: …… अपने कंप्यूटर पर फ़ाइल को सहेजें प्रारंभ करें matlab में उस निर्देशिका में नेविगेट करें जहां फ़ाइल है, फिर शीर्ष पर संकलन और निष्पादन निर्देशों का पालन करें सीपीपी फ़ाइल। मैं इन निर्देशों को यहाँ नहीं लिख सकता क्योंकि अनुदेशक आदेशों को स्वतः संपादित करते हैं और उन्हें गलत तरीके से प्रदर्शित करते हैं। नीचे दी गई तस्वीर में आप कोड को काम करते हुए देख सकते हैं। "कमांड लाइन चेतावनी" के बारे में चिंता न करें, यह कुछ भी प्रभावित नहीं करता है। बाईं ओर सूचना, वर्तमान निर्देशिका में.cpp फ़ाइल है। दाईं ओर आप मुझे कोड संकलित करते हुए और फिर इसे matlab से निष्पादित करते हुए देख सकते हैं। अपने टेक्स्ट एडिटर में फ़ाइल के माध्यम से पढ़ें (उदाहरण के लिए विंडोज़ में नोटपैड), यह बहुत अच्छी तरह से प्रलेखित और आत्म व्याख्यात्मक है, आप कोड में सम्मेलनों का पालन करके लगभग कुछ भी करने में सक्षम होंगे (यानी इसे कॉपी और पेस्ट करना और बनाना मामूली संशोधन) ######################################### ###################### …….. नोट …….. कुछ कष्टप्रद ऑटो-एडिटिंग के कारण जो इंस्ट्रक्शंस करता है, कोड जैसा कि देखा गया है अगला पृष्ठ काम नहीं करेगा, आपको इसे कॉपी और पेस्ट करने के बजाय मेरे द्वारा संलग्न की गई फ़ाइल को डाउनलोड करना होगा। ############################################# #####################

चरण 2: यह कोड है, कॉपी और पेस्ट न करें

यह कोड है, कॉपी और पेस्ट न करें
यह कोड है, कॉपी और पेस्ट न करें

############################################# ###################…….. नोट …….. कुछ कष्टप्रद ऑटो-एडिटिंग के कारण जो इंस्ट्रक्शंस करता है, इस पेज पर देखा गया कोड नहीं होगा काम करें, आपको मेरे द्वारा संलग्न की गई फ़ाइल को कॉपी और पेस्ट करने के बजाय डाउनलोड करना होगा।############################ ####################################// यह सी ++ में leevonk द्वारा लिखा गया था// यह मैटलैब मैक्स फ़ाइल के लिए कोड है // कोड एक नंबर मान लेगा और आउटपुट दो नंबर मान // दो आउटपुट नंबरों की गणना इनपुट नंबर से की जाती है // कोड एक स्ट्रिंग मान आउटपुट करेगा // कोड होगा "हैलो वर्ल्ड" भी प्रिंट करें#include "mex.h"void mexFunction(int nlhs, mxArray *plhs, int nrhs, mxArray *prhs) {//########### ##########################//#######-- "हैलो वर्ल्ड" प्रिंट करें--### #########//################################### ### mexPrintf ("हैलो वर्ल्ड");//################################ #####//#######-- मैटलैब से सामान प्राप्त करें--########//############### ########################/ * आने वाली घाटी को पकड़ने के लिए एक सरणी चर घोषित करें */डबल* इनवैल्यूज़;/* matlab से भेजे गए मान प्राप्त करें */InValues = mxGetPr(prhs[0]);/* matlab से भेजे गए इन मानों का उपयोग करने के लिए, InValues करें [०], इनवैल्यू [1], आदि के अनुसार कितने मूल्य हैं। इनवैल्यूज़ का उपयोग नीचे किया जाएगा *///#################################### ##//########--एक संख्या सरणी लौटाएं--#########//################# #####################/* उस सरणी की घोषणा करें जिसे मैटलैब को भेजा जाएगा (* इसे एक सरणी बनाता है) */डबल * आउटवैल्यू;/ * रिटर्न तर्क बनाएं/आवंटित करें, रिटर्न ऐरे के पहले स्लॉट के लिए एक 1x2 (1 पंक्ति 2 कॉलम) मैट्रिक्स (plhs[0]) */plhs[0]=mxCreateDoubleMatrix(1, 2, mxREAL); /* वापसी तर्क के लिए सूचक प्राप्त करें */OutValues = mxGetPr(plhs[0]); /* आउटवैल्यूज़ को मान असाइन करें जो रिटर्न ऐरे के पहले स्लॉट में रहेगा, यहाँ हम कंप्यूटर के लिए इनवैल्यूज़ का उपयोग कर रहे हैं आउटवैल्यूज़ */आउटवैल्यूज़ [0] = इनवैल्यूज़ [0] + 1; आउटवैल्यूज़ [1] = इनवैल्यूज़ [0] + 2;//######################################// ###########- एक स्ट्रिंग लौटाएं--############//################ #######################/* घोषित स्ट्रिंग वैरिएबल को matlab */char* str;/* को एक मान असाइन करें स्ट्रिंग */str = "बायबाय";/* स्ट्रिंग को रिटर्न एरेज़ में दूसरा स्लॉट (plhs[1]) */plhs[1]=mxCreateString(str);//########## में डालें ##################################//###########--वापसी अधिक सामान--############//################################ ###########/* अधिक सामान वापस करने के लिए, ऊपर सामान्य नियमों का पालन करें लेकिन सामान को अन्य plhs स्लॉट में डाल दें, plhs[somenumber] */ }

चरण 3: यदि किसी कारण से यह संकलित नहीं होता है

यदि किसी कारण से यह संकलित नहीं होता है
यदि किसी कारण से यह संकलित नहीं होता है

अगर किसी भी कारण से यह संकलित नहीं होता है (इसे मेरे कंप्यूटर पर ठीक काम करना चाहिए) इन संसाधनों को देखें, वे वही हैं जहां से मैंने सीखा है। उनमें थोड़ी कमियां हैं (कुछ पुराने, गैर-कार्यात्मक व्याकरण, आदि का उपयोग करें) लेकिन यदि आप दोनों के बीच आगे-पीछे जाते हैं तो आपको कुछ ऐसा काम करने में सक्षम होना चाहिए जो काम करता है। https://web.ccr.jussieu.fr/ccr/ दस्तावेज़ीकरण/गणना/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/

सिफारिश की: