كيف يمكنني إيقاف MATLAB من العودة حتى بعد سطر أوامر البرنامج النصي يكتمل ؟

StackOverflow https://stackoverflow.com/questions/14495

  •  08-06-2019
  •  | 
  •  

سؤال

أرى في MATLAB مساعدة (matlab -h) يمكنني استخدام -r العلم إلى تحديد m-ملف الترشح.لقد لاحظت عندما أفعل هذا, MATLAB يبدو أن يبدأ السيناريو ، ولكن العودة فورا.السيناريو عمليات بخير لكن التطبيق الرئيسي وقد عاد بالفعل.

هل هناك أي طريقة للحصول على مطلب سوى العودة مرة الأمر الانتهاء ؟ إذا كنت تتصل من برنامج منفصل يبدو أنه من الأسهل إلى الانتظار على العملية بدلا من استخدام ملف أو مآخذ للتأكد من الانتهاء.

لتوضيح ، وهنا عينة وظيفة waitHello.m:

function waitHello
    disp('Waiting...');
    pause(3); %pauses 3 seconds
    disp('Hello World');
    quit;

وأنا أحاول أن تشغيل هذا باستخدام:

matlab -nosplash -nodesktop -r waitHello
هل كانت مفيدة؟

المحلول

إجابة سريعة:

matlab -wait -nosplash -nodesktop -r waitHello

في Matlab 7.1 (النسخة لدي) هناك لا يحملون وثائق خيار سطر الأوامر -الانتظار في matlab.الخفافيش.إذا كان لا يعمل على الإصدار الخاص بك, ربما يمكن إضافته في.وهنا ما وجدت.الأمر في أسفل أخيرا تطلق matlab (خط 153):

start "MATLAB" %START_WAIT% "%MATLAB_BIN_DIR%\%MATLAB_ARCH%\matlab" %MATLAB_ARGS%

ذات الصلة الجملة من بدء الأمر (انظر "المساعدة" في cmd.exe) في هذه الحالة هو:

start ["window title"] [/wait] myprogram.exe args ...

أعلى قليلا بين كل من وثقت خيارات سطر الأوامر ، وجدت (خط 60):

) else if (%opt%) == (-wait) (
  set START_WAIT=/wait
) else (

حتى تحديد انتظر ينبغي أن تفعل ما تريد طالما أنك أيضا الخروج matlab من السيناريو الخاص بك (وإلا فإنه سوف الانتظار بالنسبة لك لإنهاء الأمر بشكل تفاعلي).

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