2014-07-14 1 views
1

저는 데이터를 말하는 실험을하고 있습니다. MatLab은 데이터를 그래프로 만들어 비디오 파일에 저장합니다.프로그램을 중지하고 데이터를 저장하라는 명령이 있습니까?

지금 당장은 tic/toc 함수와 while 루프를 사용하여 Matlab이 실험 데이터를 기록하는 시간을 제어합니다. 그러나 때로는 타이머를 설정 한 시간보다 실험이 더 빨리 완료됩니다. 따라서 오랜 시간 동안 MatLab이 데이터를 녹음하기를 기다려야합니다. 필자는 어쨌든 사용하지 않을 것입니다.

나는 명령에 따라 프로그램을 중지하고 지금까지 기록한 데이터를 유지하는 데 사용할 수있는 MatLab 기능 또는 기술을 찾고 있습니다.

또 다른 한가지는 각 실험이 얼마나 오래 걸릴지 알 수 없기 때문에 특정 시간을 설정할 수 없습니다. 하나의 실험은 2 초 동안 진행될 수 있으며 다른 실험은 2 분 이상 진행될 수 있습니다.

내가 지금 가지고있는 코드는 다음과 같은 것입니다 :

tic; 
while toc<90 % run loop until time is 90 secs 
%Record data 
%graph data 
end 
%save all data to a file 

답변

1

당신은 각 반복의 데이터를 저장 한 다음

CTRL + C를 사용하여 중간에 프로그램을 깰 수

이것은 가장 효율적일 수는 없지만 가능한 경우 문제를 해결해야합니다.

tic; 
while toc<90 % run loop until time is 90 secs 
    %Record data 
    %graph data 
    %save all data to a file 
end 

또 다른 방법은 루프의 특정 키를 누를 확인하고 저장 될 모든 데이터

tic; 
while toc<90 % run loop until time is 90 secs 
    %Record data 
    %graph data 
    %if user pressed Q 
     %save all data to a file 
     break 
    % 
end 

키를 눌렀는지 여부를 확인하려면 다음

key = get(gcf,'CurrentKey'); 
if(strcmp (key , 'return')) 
    % Do something 
end 
+0

내가 좋아하는 두 번째 방법이 더 좋습니다. If 문에 사용할 수있는 구문은 무엇입니까? – user3712173

+0

@ user3712173 업데이트 된 답변보기 –

+0

고마워요! 위대한 작품 – user3712173