كيف يمكنني إنشاء قائمة بتبعيات الوظائف في MATLAB؟
-
01-07-2019 - |
سؤال
من أجل توزيع وظيفة كتبتها وتعتمد على وظائف أخرى كتبتها ولها تبعيات خاصة بها وما إلى ذلك دون توزيع كل ملف m كتبته على الإطلاق، أحتاج إلى معرفة القائمة الكاملة للتبعيات لملف m معين.هل هناك طريقة مضمنة/قابلة للتنزيل مجانًا للقيام بذلك؟
على وجه التحديد، أنا مهتم بحلول MATLAB 7.4.0 (R2007a)، ولكن إذا كانت هناك طريقة مختلفة للقيام بذلك في الإصدارات الأقدم، فيرجى إضافتها هنا بكل الوسائل.
المحلول
بالنسبة للإصدارات الأحدث من Matlab (على سبيل المثال، 2007 أو 2008) يمكنك استخدام الوظائف المضمنة:
- ملينت
- تقرير التبعية و
- تقرير التغطية
خيار آخر هو استخدام ملف تعريف 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):
- com.depfun
- com.depdir
على سبيل المثال،
>> deps = depfun('foo');
يعطي بنية، deps، تحتوي على كافة تبعيات foo.m.
من الإجابات 2, ، و 3, ، تستخدم الإصدارات الأحدث من MATLAB (بعد 2015 أ). matlab.codetools.requiredFilesAndProducts
بدلاً من.
شاهد الاجوبة
يحرر:
التحذيرات بفضل تعليقاتMike Katz
تذكر أن البروفيلر ستظهر لك فقط الملفات التي تم استخدامها بالفعل في هذه التشغيل ، لذلك إذا لم تمر بكل فرع ، فقد يكون لديك تبعيات إضافية.يعد تقرير التبعية أداة جيدة ، ولكنه يحل فقط التبعيات الثابتة على المسار وفقط للملفات في دليل واحد.
DePfun أكثر موثوقية ولكن يمنحك كل شيء ممكن يمكن أن يفكر فيه ، ولا يزال يفتقد الحمل و Eval's.
نصائح أخرى
ل MATLAB 2015a
وبعد ذلك يفضل أن تنظر إليه matlab.codetools.requiredFilesAndProducts
أو doc matlab.codetools.requiredFilesAndProducts
لأن depfun
تم وضع علامة لإزالتها في إصدار مستقبلي.