2015-01-18 7 views
2

Matlab/GNU Octave에서 '실행'또는 '소스'로 시작된 스크립트를 중지 할 수있는 방법이 있습니까? Ctrl-C와는 다른 말로, 주어진 조건 (아마도 전역 변수에 의해 주어진다)이 유지되고 break 신호가 그것으로 보내진다는 것을 의미한다.Matlab/GNU Octave에서 '실행'으로 시작된 스크립트를 중단하는 방법은 무엇입니까?

예 : environment 변수가 0.5보다 높은 값을 취한다 때

스크립트 haltable.m 정지한다.

global environment 

while (true) 
    environment = rand; 
endwhile 

그것은

(물론 haltable.m의 외부가)이 조건이 충족 된 후에는 중단해야 지정 될 수
global environment 

run ('haltable.m') 

으로 시작됩니다?

+1

항상 스크립트의 같은 위치에 중단이 발생합니까? 또는 "정지"조건이 발생하자마자 중단 될 수 있습니까? 스크립트가 주요 루프입니까? 몇 가지 예제 코드를 게시하십시오 (원래 스크립트가 너무 길면 최소한의 작업 예제를 작성하십시오). – Hoki

+0

조건이 충족되는 즉시. 나는 그것을 예시하려고 노력했다. – nightcod3r

+0

나는 아직도이 목적을 이해하지 못한다. 루프 안에서 조건을 검사 할 수 있다면'ctrl + C '의 문제점이 아니라면 종료 조건을 프로그래밍 할 수 있습니까? (무엇이 잘못되었거나하지 않습니까?) – Hoki

답변

5

스크립트 외부에서 이러한 중지 조건을 구현할 수 없습니다. matlab은 단일 스레드이며 외부는 실행되지 않습니다. 어쩌면 조건부 중단 점이 당신이 찾고있는 것일 수 있습니다.

dbstop in haltable at 5 if (environment>.5) 

는 올바른 행 번호와 5를 교체해야합니다. 이것은 스크립트를 중지시키지 않고 중지시키고 디버거로 전환합니다.

+0

좋은 지적. 나는 이것이 스크립트와 상호 작용할 수있는 유일한 대안이라고 생각한다. – nightcod3r

+0

매우 영리합니다. ;) +1 나는'db *'도구를 좋아한다. – chappjc