MatLab使用计时器运行两个脚本

时间:2019-01-10 19:09:15

标签: matlab timer

我有两个脚本要同时执行。计时器应该执行此操作,但是它不起作用。我是这样设置的:

%main script
f=figure('units','Normalized','Outerposition',[0 0 1 1]);
h=animatedline('color','b','marker','.');
%% variables
i=1;
i_max=600;
x=[];
means=[];
count=0;
count_max=100;
espera=count_max/20;
i_max=600;
running=true;
t = timer('TimerFcn', 'script1;','StartDelay',1,'ExecutionMode','singleShot');
tt = timer('TimerFcn', 'script2;','StartDelay',1,'ExecutionMode','singleShot');
start(t);
start(tt);
disp('done')

但是,这只会先运行t,然后再运行tt。输出为:

>> main
done
start script1
end script1
start script2
end script2'

脚本非常简单,我试图使其首先运行:

%script1
disp('start script1')
while i<=i_max
  x=[x;sin(i)+rand*randi([1 5])];
  for k=1:lh
    addpoints(h_notsave(k),i,x(i));
  end
  drawnow
  i=i+1;
  count=count+1;
end
running=false;
disp('')
disp('end script1')

%script2
disp('start script2')
while running 
  if count>=count_max
    data=x(end-count_max+1:end);
    means=[means;mean(data)];
    count=0;
    disp('inside if')
  end
  pause(espera);
end
disp('end script2')

我不能将每个脚本发送到不同的线程,因为工作人员不支持绘图,也不在它们之间发送信息。

我认为我们可以使用排队的数据来更新工人的地块,但我不知道如何。

0 个答案:

没有答案