2016-08-28 3 views
1

작업을 위해 설정된 시간 후에 자극 (TTL 펄스)을 트리거하는 Matlab 프로그램을 작성해야합니다. 첫째, 32 분을 기다리는 프로그램이 필요합니다. 그런 다음 자극 펄스를 실행하고 5 초를 기다렸다가 자극 펄스를 다시 실행 한 다음 추가 115 초를 기다립니다. 이 작업을 5 번 반복해야합니다 (32 분 대기 기간 제외).Matlab 타이밍 프로그램

저는 Matlab 구문이 끔찍합니다. 나는 Python을 조금 다루었지만이 특별한 함수는 Matlab을 필요로한다. 왜냐하면 자극 생성기와 함께 작동하는 툴킷을 가지고 있기 때문이다. 그것은 가치가 무엇인지에 대한

, 그것은 기존의 코드에 표시되는 트리거 출력은 다음과 같습니다

if i > 1 
    % insert output trigger for page 1 
    pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE; 
    end; 

여기 나에게 구문 오류의 모든 종류를 제공되는 코드의 루프 부분에서 내 허접스런 시도이다 :

% Use for loop for 5 iterations 
for i = 1:5 
    % trigger TTL pulse 
    pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE; 
    % trying to use tic and toc as a timer that resets each iteration 
    timerID = tic; 
    % I thought to use a while loop for the timing 
    % 5 second wait period 
    while true 
     if(toc(timerID)>5) 
      break; 
     end 
    % trigger TTL pulse again 
    pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE; 
    % 115 second wait period 
    while true 
     if(toc(timerID)>120) 
      break; 
     end 
end 

그게 전부입니다. 어떤 도움이라도 대단히 감사하겠습니다. Matlab에서 내가 끔찍한 것처럼 완전히 다른 접근법을 사용해야 할 필요가 있는지 말해주십시오. 고맙습니다.

답변

1

이 경우 pause을 사용할 수 있습니다. 다음과 같이 시도하십시오.

pause(32*60); % Pause 32 minutes 
for ii = 1:5 
    pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE; 
    pause(5); 
    pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE; 
    pause(115); 
end 
+0

완벽하게 작동했습니다. 정말 고맙습니다! 추신 : 귀하의 답변을 upvoted,하지만 그것은 내 계정의 평판이 15 이하이기 때문에 투표를 표시하지 않습니다 말한다 –

+0

다행스럽게도 =) 행운을 빕니다 ... –