我的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
答案 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*');