MATLAB

9

के साथ टेक्स्ट और आंकड़े वाले रिपोर्ट बनाने के लिए कैसे मैं मशीन पर नियंत्रण प्रणाली को ट्यून करने के लिए MATLAB स्क्रिप्ट का उपयोग कर रहा हूं। जब ट्यूनिंग पूर्ण हो जाती है, तो मुझे एक रिपोर्ट (जिसमें विशेष रूप से धारावाहिक संख्या, दिनांक/समय और ट्यूनिंग के दौरान निर्धारित मूल्य) और प्लॉट, विशेष रूप से स्थानांतरण कार्यों को शामिल करना होगा।MATLAB

आपको क्या सलाह है?

जो भी समाधान मैं उपयोग करता हूं उसे MATLAB संकलक के साथ संगत होना चाहिए ताकि मैं फील्ड इंजीनियरों की एक टीम को अपना समाधान वितरित कर सकूं।

आदर्श रूप से रिपोर्ट एक पीडीएफ दस्तावेज़ होगा।

MATLAB रिपोर्ट जनरेटर सही उत्पाद प्रतीत नहीं होता है क्योंकि ऐसा प्रतीत होता है कि मुझे अपनी स्क्रिप्ट को छोटे टुकड़ों में तोड़ना है और उन्हें रिपोर्ट टेम्पलेट में एम्बेड करना है। मेरी स्क्रिप्ट में उपयोगकर्ता के लिए हस्तक्षेप और परिवर्तन करने के अवसर हैं या यदि धब्बे सही नहीं दिखते हैं तो मेरी धुन को अस्वीकार कर दिया जाता है और मेरा हल यह है कि कोड जनरेटर से कोड चलाता है तो यह मुश्किल होगा। साथ ही, मुझे कोड संरचना से डर है और अगर कोड संरचना रिपोर्ट टेम्पलेट की आवश्यकताओं द्वारा निर्धारित की जाती है तो रखरखाव खो जाएगा।

अगर मेरी धारणाएं गलत हैं तो कृपया टिप्पणी करें।

अद्यतन

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

उत्तर

4

MATLAB रिपोर्ट जनरेटर के विकास प्रबंधक के रूप में, मुझे चिंता है कि यह प्रश्न रिपोर्ट जेनरेटर की क्षमताओं के बारे में गलत इंप्रेशन छोड़ सकता है।

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

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

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

MATLAB रिपोर्ट जेनरेटर की नवीनतम रिलीज डीओएम एपीआई की तरह क्षमताओं के साथ एक पावरपॉइंट एपीआई प्रस्तुत करती है। यदि आपको अपने MATLAB एप्लिकेशन में रिपोर्ट जनरेशन शामिल करने की आवश्यकता है, तो कृपया पिछले इंप्रेशन के आधार पर MATLAB रिपोर्ट जेनरेटर को नकारें। आप आश्चर्यचकित हो सकते हैं कि यह कितना शक्तिशाली हो गया है।

+0

अब मैंने रिपोर्ट जेनरेटर पर स्विच किया है और यह अच्छी तरह से काम करता है। –

1

क्या आपने माइक्रोसॉफ्ट वर्ड को अपने ActiveX इंटरफ़ेस के माध्यम से चलाया है? मैंने इसे संकलित मैटलैब प्रोग्राम में किया है और यह अच्छी तरह से काम करता है। actxserver() के लिए मैटलैब सहायता देखें: जिस ऑब्जेक्ट को आप बनाना चाहते हैं वह Word.Application प्रकार है। जोड़ने

संपादित करने के लिए: दस्तावेज़ में आंकड़े प्राप्त करने के लिए, print() को -dmeta तर्क का उपयोग .emf फ़ाइलों के रूप में उन्हें बचाने के लिए, तो उन्हें इस तरह दस्तावेज़ में जोड़ना:

WordServer.Selection.InlineShapes.AddPicture(fileName); 
+0

उदाहरण के लिए धन्यवाद। शब्द प्रदान करने वाली सभी सेवाओं को आप कैसे खोजते हैं? Google मदद नहीं कर रहा है। –

+0

माइक्रोसॉफ्ट वेब साइट पर एक उचित मात्रा में जानकारी है, लेकिन यह खोजना मुश्किल है। 'वर्ड ऑटोमेशन' या 'वीबीए वर्ड' की तलाश करने का प्रयास करें। एक बार जब आप वर्ड ऑब्जेक्ट प्राप्त कर लेते हैं तो आप इसे मैटलैब में 'विधियों()' पर कॉल कर सकते हैं ताकि यह पता चल सके कि यह क्या खुलासा करता है, लेकिन यह सबकुछ नहीं है। – Max

+0

वर्ड के हाल के संस्करणों में उपलब्ध सहायता अब दुर्भाग्य से इस सामान को दस्तावेज नहीं करती है।मेरा मानना ​​है कि O'Reilly पुस्तक में वर्णित इंटरफ़ेस बहुत अधिक अपरिवर्तित है (http://shop.oreilly.com/product/9781565927254.do पर) इसके अलावा Word 2010 के लिए ActiveDocumentSaveAs() विधि को ActiveDocumentSaveAs2() द्वारा प्रतिस्थापित किया गया है । आप मैक्रो को रिकॉर्ड करने का प्रयास भी कर सकते हैं (जो सुविधा उपलब्ध है, अनजाने में, दृश्य रिबन टैब से!) और जेनरेटेड वीबीए देखें। – Max

2

मुझे लगता है कि आप सही कर रहे हैं के बारे में रिपोर्ट जनरेटर।

मेरी राय में एक HTML दस्तावेज़ में रिपोर्ट उत्पन्न करने का सबसे तेज़/आसान तरीका होगा। इसके लिए आपको केवल आंकड़ों की आवश्यकता है और एक टेक्स्ट फ़ाइल लिखनी है, रूपांतरण छोटा होना चाहिए।

काफी समान दृष्टिकोण लेटेक्स फ़ाइल बनाना होगा। और उसके बाद से एक पीडीएफ बनाएँ - हालांकि इसके लिए आपको अपनी तैनाती मशीनों पर लेटेक्स स्थापित करने की आवश्यकता होगी।

अंत में आप मैटलैब में जावा के अच्छे एकीकरण का उपयोग कर सकते हैं। ऐसे कई पुस्तकालय हैं जिनका आप उपयोग कर सकते हैं - जैसे this। लेकिन मुझे आश्चर्य है कि क्या सभी जटिलताओं के लायक होंगे।

3

मैंने यह काफी कुछ किया है। आप सही हैं कि MATLAB रिपोर्ट जेनरेटर आमतौर पर एक अच्छा समाधान नहीं है। @ मैक्स सही दृष्टिकोण (इसके COM इंटरफेस के माध्यम से शब्द स्वचालित करने) का सुझाव देता है, लेकिन मैं अपने अनुभवों के आधार पर कुछ अतिरिक्त टिप्पणियां और सुझाव जोड़ूंगा।

  1. याद रखें कि यदि आप इस समाधान के साथ जा रहे हैं, तो आप इस बात पर निर्भर हैं कि आपके अंतिम उपयोगकर्ता विंडोज चलेंगे, और उनकी मशीन पर कार्यालय की प्रतिलिपि होगी।यदि आप आखिरकार पीडीएफ रिपोर्ट तैयार करना चाहते हैं, तो उसे कार्यालय 2010 या उससे ऊपर की आवश्यकता होगी।
  2. मैं शर्त लगाता हूं कि आपको Word की बजाय Excel में रिपोर्ट पीढ़ी को स्वचालित करना आसान लगेगा। यह देखते हुए कि आप MATLAB से एक रिपोर्ट तैयार कर रहे हैं, आप शायद संख्याओं की तालिकाओं में बहुत सी चीजें चाहते हैं, जो एक्सेल में रखना आसान है।
  3. यदि आप इसे Word में करने जा रहे हैं, तो सबसे आसान तरीका है (MATLAB के बिना) टेम्पलेट .doc/.docx फ़ाइल बनाएं, जिसमें कोई सामान्य टेक्स्ट शामिल है जो सभी रिपोर्ट और रिक्त तालिकाओं के लिए समान होगा कोई भी जानकारी। ट्रैक परिवर्तन चालू करें, और प्रत्येक बिंदु पर खाली टिप्पणियां डालें जिन्हें आप जानकारी भरेंगे। फिर MATLAB में अपनी रिपोर्ट निर्माण दिनचर्या के भीतर, प्रत्येक टिप्पणी के माध्यम से Word और iterate से कनेक्ट करें, जो भी आप चाहते हैं उसके साथ इसे बदल दें।
  4. यदि आप Excel इंटरऑप दस्तावेज़ से Excel को स्वचालित करने के लिए सीख रहे हैं, this pageवास्तव में सहायक है। शब्द के लिए एक समकक्ष है।
  5. @ मैक्स के विपरीत, मैंने कभी भी .emf फ़ाइल में आंकड़ों को सहेजकर और फिर उन्हें सम्मिलित करके अच्छे नतीजे नहीं दिए हैं। सिद्धांत रूप में जो संपादन योग्यता को संरक्षित करता है, लेकिन मुझे वह मूल्यवान कभी नहीं मिला है। इसके बजाय, MATLAB में सही (और सही आकार) दिखने वाला चित्र प्राप्त करें, फिर इसे print(figHandle, 'dbitmap') के साथ क्लिपबोर्ड पर कॉपी करें और Worksheet.Range('A1').PasteSpecial के साथ Excel पर पेस्ट करें।
  6. पीडीएफ के रूप में सहेजने के लिए, Workbook.ExportAsFixedFormat('xlTypePDF', pathToOutputFile) का उपयोग करें।

आशा है कि मदद करता है!

+0

किसी .emf फ़ाइल से कोई चित्र डालने पर वास्तविक व्यवहार Matlab और/या Word के संस्करण के साथ भिन्न होता है। मैं अब कुछ साल पहले बेहतर परिणाम प्राप्त करता था। हालांकि, यह अभी भी काम करता है, इसलिए यदि यह तोड़ा नहीं गया है ... – Max