علامة التبويب إكمال أسماء الملفات كجدات لبرامج نصوص MATLAB
-
12-09-2019 - |
سؤال
نعلم جميعا Matlab يوفر علامة التبويب لإكمال أسماء الملفات المستخدمة كحجج في وظيفة Matlab مثل importdata
,imread
. وبعد كيف نفعل ذلك للوظائف التي نخلقها؟
تعديل:
يعرض الملفات والمجلدات في الدليل الحالي.
المحلول
الحذر: الاختراق غير مدعوم هنا.
إلقاء نظرة على ملف أدوات الملف Local TC.xml في تثبيت Matlab الخاص بك. يبدو أن هذا يحتوي على تعيينات نوع الوسيطة لإكمال علامة التبويب. (لقد وجدت هذا من خلال التثبيت فقط تركيب ماتلاب ل "Imread" في R2009B.)
مضيفا هذا الخط داخل <TC>
سيحصل العنصر على علامة التبويب إكمال أسماء الملفات لكل من حججه.
<binding name="importdata" ctype="FILE"/>
هذا يتطلب تعديل تثبيت ماتلاب في مكانه. بالنسبة لبعض الملفات الأخرى في Toolbox / Local، مثل ClassPath.txt، يمكنك تجاوزها عن طريق وضع نسخ معدلة في الدليل الذي تبدأ Matlab من، ولكن هذا لم يعمل مع TC.xml بالنسبة لي.
نصائح أخرى
لا توجد طريقة مدعومة لإضافة وظائفك إلى علامة تبويب الوسائط، ولكن خدعة واحدة أستخدمها هي وضع "!" أمام الأمر، يتم التعامل معه كأمر نظام. سيتم بعد ذلك إكمال علامة التبويب مسارات الملفات. بمجرد انتهاء أمر MATLAB، أنا موطن بداية الخط، حذف "!" واضغط ENTER.
ل matlab 2016A أعلاه:
الملف t.xml غير موجود في MATLAB 2016A فصاعدا. يستخدم أ .json. (java script cootation notation) لتحقيق نفس الشيء. مثال بسيط على ذلك يمكن أن يكون كما يلي.
افترض أن لديك ملف وظيفة Matlab يسمى myFunction.m
. وبعد علاوة على ذلك، لنفترض أن هذه الوظيفة تحتاج إلى ملفات مع التمديد .ext
كمدخلات وتريد إكمال علامة التبويب لإظهار جميع خيارات الإدخال الممكنة لهذه الوظيفة. ثم، اكتب المحتوى التالي في ملف واسمه functionSignatures.json
.
{
"myFunction":
{
"inputs":
[
{"name":"filename", "kind":"required", "type":"filepath=*.ext" }
]
}
}
ضع هذا الملف في نفس الدليل myFunction.m
ملف. الآن، أعد تشغيل matlab.
ما يفعله هذا الملف: أثناء الكتابة في إدخال الوظيفة، عند الضغط على علامة التبويب، سترى قائمة بالملفات مع التمديد .ext
ظهور غير متوقع. إذا كنت تريد عرض جميع الملفات في علامة التبويب إكمال المنبثقة بغض النظر عن امتدادهم، ثم استبدال "type":"filepath=*.ext"
مع "type":"filepath"
في الملف functionSignatures.json
.