2008-08-18 25 views
20

Tôi thấy trong trợ giúp MATLAB (matlab -h) mà tôi có thể sử dụng cờ -r để chỉ định một m-tệp để chạy. Tôi nhận thấy khi tôi làm điều này, MATLAB dường như bắt đầu kịch bản, nhưng ngay lập tức trở lại. Kịch bản xử lý tốt, nhưng ứng dụng chính đã trở lại.Làm thế nào tôi có thể ngăn chặn MATLAB trở lại cho đến sau khi một kịch bản dòng lệnh hoàn thành?

Có cách nào để MATLAB chỉ trả lại khi lệnh đã kết thúc không? Nếu bạn đang gọi nó từ một chương trình riêng biệt có vẻ như nó dễ dàng hơn để chờ đợi về quá trình hơn là sử dụng một tập tin hoặc ổ cắm để xác nhận hoàn thành.

Để minh họa, đây là một chức năng mẫu waitHello.m:

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

Và tôi cố gắng chạy này bằng:

matlab -nosplash -nodesktop -r waitHello 

Trả lời

24

câu trả lời nhanh:

matlab -wait -nosplash -nodesktop -r waitHello 

Trong Matlab 7.1 (các phiên bản tôi có) có một tùy chọn dòng lệnh không có giấy tờ -wait trong matlab.bat. Nếu nó không hoạt động cho phiên bản của bạn, bạn có thể thêm nó vào. Đây là những gì tôi tìm thấy. Lệnh ở phía dưới mà cuối cùng ra mắt matlab là (dòng 153):

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

Cú pháp liên quan của lệnh start (xem "giúp khởi động" trong cmd.exe) trong trường hợp này là:

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

Một chút cao hơn, trong số tất cả các tùy chọn dòng lệnh ghi nhận, tôi thấy (dòng 60):

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

vì vậy, quy định cụ thể -WAIT nên làm những gì bạn muốn, miễn là bạn cũng đang thoát matlab từ của bạn kịch bản (nếu không nó sẽ wa nó cho bạn để chấm dứt nó tương tác).

+2

Tùy chọn này không có trên Linux, bạn có biết cách tôi có thể đạt được điều tương tự không? – Snickers3192

+0

@ Snickers3192 [xem câu trả lời của tôi ở đây] (https://stackoverflow.com/a/4621554/97160) cho một Unix tương đương với cờ '-wait' (sử dụng [' wait'] (https: //en.wikipedia .org/wiki/Wait_ (command)) lệnh shell) – Amro

Các vấn đề liên quan