2009-12-03 4 views
21

हम सभी जानते हैं कि MATLAB MATLAB फ़ंक्शन में importdata, imread जैसे तर्कों के रूप में उपयोग किए गए फ़ाइल नामों के लिए टैब-पूर्णता प्रदान करता है। हम जो कार्यों को बनाते हैं, उनके लिए हम ऐसा कैसे करते हैं?MATLAB स्क्रिप्ट्स के लिए तर्क के रूप में फ़ाइल नामों का टैब-समापन

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

alt text

प्रदर्शित फ़ाइलें और मौजूदा निर्देशिका में फ़ोल्डर्स।

+0

आप कैसे आप संपादक या कमांड विंडो में समारोह नाम के प्रथम भाग टाइप कर सकते हैं के बारे में बात कर रहे हैं, तो टैब मारा फ़ंक्शन नाम है कि यह पूरा की एक सूची प्राप्त करने के लिए? जब मैं ऐसा करता हूं तो मेरे द्वारा लिखे गए सभी फ़ंक्शन वर्तमान MATLAB पथ पर दिखाई देते हैं। – gnovice

+0

@gnovice: मैंने अपना प्रश्न – Jacob

+0

अपडेट किया है मुझे कल (जब मेरे पास MATLAB तक पहुंच है) की जांच करनी होगी, लेकिन मुझे लगता है कि * MATLAB निर्देशिकाओं/फ़ाइलों के साथ टैब-समापन करेगा जब भी आप टाइपिंग शुरू करेंगे एक स्ट्रिंग मूल्य में। – gnovice

उत्तर

22

सावधानी: यहां असमर्थित हैक।

अपने Matlab स्थापना में फ़ाइल टूलबॉक्स \ local \ TC.xml पर एक नज़र डालें। ऐसा लगता है कि टैब पूर्ण होने के लिए तर्क प्रकार मैपिंग शामिल है। (मैंने इसे R2009b में "imread" के लिए मैटलैब इंस्टॉलेशन को केवल grepping करके पाया।)

<TC> तत्व के अंदर इस पंक्ति को जोड़ने से आप प्रत्येक तर्क के लिए फ़ाइल नामों का टैब-समापन प्राप्त करेंगे।

<binding name="importdata"  ctype="FILE"/> 

इसके लिए मैटलैब स्थापना को जगह में संशोधित करने की आवश्यकता है। टूलबॉक्स/स्थानीय में कुछ अन्य फ़ाइलों के लिए, classpath.txt की तरह, आप उस निर्देशिका में संशोधित प्रतियों को रखकर ओवरराइड कर सकते हैं, जिस पर आप Matlab शुरू करते हैं, लेकिन यह मेरे लिए टीसी.एक्सएमएल के लिए काम नहीं करता है।

+0

यह बहुत अच्छा है! – Jacob

+0

वाह, स्पिफी! .... –

+0

क्या यह समाधान 6 साल बाद और संस्करण R2015b में अभी भी मान्य है? जैसा कि: क्या अब ऐसा करने के लिए एक गैर-हैकिंग तरीका है और/या इस तरह से अभी भी काम कर रहा है? – Adriaan

5

तर्क के लिए अपने कार्यों को जोड़ने के लिए कोई समर्थित तरीका टैब टैब पूरा नहीं है, लेकिन एक चाल जो मैं उपयोग करता हूं वह है "!" कमांड के सामने, इसलिए इसे सिस्टम कमांड की तरह माना जाता है। तब टैब पथ पथ को पूरा करेगा। एक बार मेरा MATLAB आदेश पूरा हो जाने के बाद, मैं लाइन की शुरुआत के लिए घर, "!" हटा दें और एंटर दबाएं।

+0

@ माइक: हाँ, यह मुझे लगता है कि काम कर सकता है। – Jacob

2

मैटलैब 2016a और इसके बाद के संस्करण के लिए:

फ़ाइल Tc.xml मैटलैब 2016a बाद में मौजूद नहीं है। यह प्राप्त करने के लिए .json (जावा स्क्रिप्ट ऑब्जेक्ट नोटेशन) फ़ाइल का उपयोग करता है। इस प्रकार का एक सरल उदाहरण निम्नानुसार हो सकता है।

मान लीजिए कि आपके पास myFunction.m नामक एक मैटलैब फ़ंक्शन फ़ाइल है। इसके अलावा, मान लीजिए कि इस फ़ंक्शन को इनपुट के साथ .ext इनपुट के साथ फ़ाइलों की आवश्यकता है और आप इस फ़ंक्शन के लिए सभी संभावित इनपुट विकल्प दिखाने के लिए टैब-पूर्णता चाहते हैं। फिर, फ़ाइल में निम्न सामग्री लिखें और इसे functionSignatures.json नाम दें।

{ 
"myFunction": 
{ 
    "inputs": 
    [ 
    {"name":"filename", "kind":"required", "type":"filepath=*.ext" } 
    ] 
} 
} 

प्लेस के रूप में myFunction.m फ़ाइल एक ही निर्देशिका में इस फाइल। अब, Matlab पुनरारंभ करें।

क्या इस फाइल करता है: जबकि समारोह इनपुट में टाइप, टैब दबाने पर, आप विस्तार .ext अप पॉपिंग के साथ फ़ाइलों की एक सूची दिखाई देगी। यदि आप सभी एक्सटेंशन को अपने एक्सटेंशन के बावजूद टैब पूर्ण होने वाले पॉपअप में दिखाना चाहते हैं, तो "type":"filepath=*.ext" फ़ाइल functionSignatures.json में बदलें।

स्रोत: https://www.mathworks.com/matlabcentral/answers/306157-how-to-configure-tab-completion-for-my-function-in-matlab-2016#answer_237857

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