1

不知何故,标题、xlabel、ylabel、ylim 和 xlim 在下面的脚本中没有保持固定,我该如何解决这个问题?

    x = 0:0.01:1;

figure
p1 = subplot(2,1,1);
xlabel(p1, '$x$','Interpreter','LaTex', 'Fontsize', 16);
ylabel(p1, '$\sin(x+t)$','Interpreter','LaTex', 'Fontsize', 16);
title(p1, 'Sine','Interpreter','LaTex', 'Fontsize', 20);
ylim(p1, [-1 2]) 
xlim(p1, [0 1]) 

p2 = subplot(2,1,2);
xlabel(p2, '$x$','Interpreter','LaTex', 'Fontsize', 16);
ylabel(p2, '$\cos(x+t)$','Interpreter','LaTex', 'Fontsize', 16);
title(p2, 'Cosine','Interpreter','LaTex', 'Fontsize', 20);
ylim(p2, [-2 1])
xlim(p2, [0 1]) 

for t = 0:0.1:2
    plot(p1, x, sin(x+t))      
    plot(p2, x, cos(x+t))
    pause(0.1)
end
4

1 回答 1

1

默认情况下,因为你没有hold onor hold all,所以当你在循环中重新绘制时,一切都会被重置。由于您只想更改每个图表中的一组值,因此您可以使用set而不是plot此处来解决此问题。

首先,在调用每个子图之后,绘制初始图并为其处理:

p1 = subplot(2,1,1);
h1 = plot(p1,x,sin(x);

然后继续设置标签等,就像你已经做的那样。

在循环中,替换现有图表中的数据:

for t = 0.1:0.1:2
    set(h1,'Ydata',sin(x+t))      
    set(h2,'Ydata',cos(x+t)) 
    pause(0.1)
end
于 2013-11-11T10:42:30.233 回答