سؤال

من أجل توزيع وظيفة كتبتها وتعتمد على وظائف أخرى كتبتها ولها تبعيات خاصة بها وما إلى ذلك دون توزيع كل ملف m كتبته على الإطلاق، أحتاج إلى معرفة القائمة الكاملة للتبعيات لملف m معين.هل هناك طريقة مضمنة/قابلة للتنزيل مجانًا للقيام بذلك؟

على وجه التحديد، أنا مهتم بحلول MATLAB 7.4.0 (R2007a)، ولكن إذا كانت هناك طريقة مختلفة للقيام بذلك في الإصدارات الأقدم، فيرجى إضافتها هنا بكل الوسائل.

هل كانت مفيدة؟

المحلول

بالنسبة للإصدارات الأحدث من Matlab (على سبيل المثال، 2007 أو 2008) يمكنك استخدام الوظائف المضمنة:

  1. ملينت
  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. com.depfun
  2. 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 تم وضع علامة لإزالتها في إصدار مستقبلي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top