2008-09-18 5 views
36

एक फ़ंक्शन वितरित करने के लिए मैंने लिखा है जो मैंने लिखा है कि अन्य कार्यों पर निर्भर करता है जिनके पास अपनी खुद की निर्भरताएं हैं और इसलिए मैंने कभी भी लिखी गई प्रत्येक एम-फाइल को वितरित किए बिना, मुझे यह पता लगाने की आवश्यकता है कि पूरी सूची क्या है निर्भरता किसी दिए गए एम-फाइल के लिए है। क्या ऐसा करने के लिए एक अंतर्निहित/स्वतंत्र रूप से डाउनलोड करने योग्य तरीका है?MATLAB में फ़ंक्शन निर्भरताओं की सूची कैसे उत्पन्न कर सकता हूं?

विशेष रूप से मुझे MATLAB 7.4.0 (R2007a) के समाधान में रूचि है, लेकिन अगर पुराने संस्करणों में ऐसा करने का कोई अलग तरीका है, तो हर तरह से कृपया उन्हें यहां जोड़ें।

उत्तर

35

मैटलैब के नए रिलीज (जैसे 2007 या 2008) आप कार्यों में बनाया इस्तेमाल कर सकते हैं के लिए:

  1. mlint
  2. निर्भरता रिपोर्ट और
  3. कवरेज रिपोर्ट

एक अन्य विकल्प है Matlab के प्रोफाइलर का उपयोग करने के लिए। आदेश प्रोफाइल है, इसका उपयोग निर्भरताओं को ट्रैक करने के लिए भी किया जा सकता है। प्रोफ़ाइल का उपयोग करने के लिए आपको

>> profile on % turn profiling on 
>> foo;   % entry point to your matlab function or script 
>> profile off % turn profiling off 
>> profview  % view the report 

कर सकता है, तो प्रोफाइलर उपलब्ध नहीं है, तो शायद निम्न दो कार्य हैं (पूर्व MATLAB 2015a के लिए):

  1. depfun
  2. depdir

उदाहरण के लिए,

>> deps = depfun('foo'); 

एक संरचना, deps देता है, जिसमें foo.m की सभी निर्भरताएं शामिल हैं।

उत्तर से 2, और 3, MATLAB (पोस्ट 2015 ए) के नए संस्करण इसके बजाय matlab.codetools.requiredFilesAndProducts का उपयोग करते हैं।

देखें उत्तर देता

संपादित करें:

चेतावनियां @Mike Katz के लिए धन्यवाद टिप्पणी

  • याद रखें कि प्रोफाइलर केवल आप फ़ाइलों है कि वास्तव में उन रन में इस्तेमाल किया गया दिखाएगा , इसलिए यदि आप प्रत्येक शाखा के माध्यम से नहीं जाते हैं, तो आपके पास अतिरिक्त निर्भरता हो सकती है। निर्भरता रिपोर्ट एक अच्छा उपकरण है, लेकिन केवल पथ पर स्थिर निर्भरताओं को हल करता है और केवल एकल निर्देशिका में फ़ाइलों के लिए।

  • डेफन अधिक विश्वसनीय है लेकिन आपको के बारे में सोचने वाली हर संभव चीज़ देता है और अभी भी लोड और ईवाल को याद करता है।

+2

याद रखें कि प्रोफाइलर केवल उन फ़ाइलों को दिखाएगा जो वास्तव में उन रनों में उपयोग किए जाते थे, इसलिए यदि आप प्रत्येक शाखा से नहीं जाते हैं, तो आपके पास अतिरिक्त निर्भरता हो सकती है। निर्भरता repot एक अच्छा उपकरण है, लेकिन केवल पथ पर स्थिर निर्भरताओं को हल करता है और सिर्फ एक ही डीआईआर में फ़ाइलों के लिए। –

+3

डेफन अधिक विश्वसनीय है लेकिन आपको हर संभव चीज़ देता है जो यह सोच सकता है, और अभी भी लोड और ईवाल को याद करता है। –

+0

धन्यवाद @ मिक Katz चेतावनी के लिए। – Azim

6

MATLAB 2015a के लिए और बाद में आप बेहतर matlab.codetools.requiredFilesAndProducts

या doc matlab.codetools.requiredFilesAndProducts

क्योंकि depfun पर गौर करना चाहिए एक भविष्य के रिलीज में हटा दिया जाना चाहिए चिह्नित है।

1

अद्यतन: MATLAB 2015b, depfun और depdir के लिए हटा दिया गया है, इसलिए आपको matlab.codetools.requiredFilesAndProducts() का उपयोग करना होगा।

+0

यह एक साल पहले पहले किसी अन्य उत्तर में लिखा गया था। –

संबंधित मुद्दे