Matlab电影显示2个情节

时间:2012-12-02 19:05:20

标签: matlab movie matlab-figure

我的y矩阵为1001x2,每列代表振荡器的相位角。我正在尝试制作一个matlab电影,以便在时间t绘制两个相位角,一次一个。所以基本上它应该看起来像是在圆圈中移动2个点。如果我抓住情节那么它似乎是正确的,除了所有的点都在框架上。但是,如果我不坚持,那么每次迭代中只显示第二个图(每帧只有一个红色*)。有什么想法,我怎么能在每一帧上显示两个点?

fig1=figure(1);
winsize = get(fig1,'Position');
winsize(1:2) = [0 0];
numframes=100;
A=moviein(numframes,fig1,winsize);
set(fig1,'NextPlot','replacechildren')
i=1;

%hold on
for frame=1:numframes
i=frame*10;
plot(cos(mod(y(i),2*pi)),sin(mod(y(i),2*pi)),'bo');
plot(cos(mod(y(i,2),2*pi)) *1.1,sin(mod(y(i,2),2*pi))*1.15,'r*'); %only this one is shown
axis([-1.5 1.5 -1.5 1.5])
A(:,i)=getframe(fig1,winsize);
end 

1 个答案:

答案 0 :(得分:1)

好吧,您可以在框架绘制期间hold on和框架绘制结束时hold off。像

 for frame=1:numframes
 i=frame*10;

 plot(cos(mod(y(i),2*pi)),sin(mod(y(i),2*pi)),'bo');   
 hold on   % // here
 plot(cos(mod(y(i,2),2*pi)) *1.1,sin(mod(y(i,2),2*pi))*1.15,'r*');
 axis([-1.5 1.5 -1.5 1.5])
 A(:,i)=getframe(fig1,winsize);
 hold off  % // and here
 end 

但在这种情况下你可以简单地做

 ....
 plot(cos(mod(y(i),2*pi)),sin(mod(y(i),2*pi)),'bo', ... 
     cos(mod(y(i,2),2*pi)) *1.1,sin(mod(y(i,2),2*pi))*1.15,'r*');