gpt4 book ai didi

matlab - 在 Matlab 中绘制动画时,如何防止轴动态变化?

转载 作者:太空宇宙 更新时间:2023-11-03 20:29:52 25 4
gpt4 key购买 nike

我正在绘制函数 dx/dt 的动画并且我已经设置了坐标轴,但是当动画运行时,坐标轴会根据绘图动态变化。我该如何解决这个问题?

clear all;

%Equation variables:
s = 0;
r = 0.4;

%axes limits:
xmin = 0;
xmax = 2;
ymin = -.05;
ymax = .2;

%s limits:
smin = 0;
smax = 1;
s_steps = 100;

%our x-space:
x = linspace(xmin, xmax, 100);

%Let's try different s-values and plot as an animation:
for s=linspace(smin, smax, s_steps)
counter = counter + 1;

%dx/dt:
dxdt = s - r.*x + (x.^2)./(1 + x.^2);

figure(1),
subplot(2,1,1)
axis([xmin xmax ymin ymax]);
plot(x, dxdt);


title(strcat('S-value:', num2str(s)));

hold on;
y1 = line([0 0], [ymin ymax], 'linewidth', 1, 'color', [0.5, 0.5, 0.5], 'linestyle', '--');
x1 = line([xmin xmax], [0 0], 'linewidth', 1, 'color', [0.5, 0.5, 0.5], 'linestyle', '--');
hold off;
end

最佳答案

只需颠倒“axis”命令和“plot”命令的顺序即可。当您在“plot”之前使用“axis”时,“plot”会使用默认轴覆盖“axis”命令。切换这两行将解决问题。

但是,如果您想为单个点制作动画,还有一个“设置”命令可以为整洁的动画创造奇迹。检查一下:

% data (Lissajous curves)
t = linspace(0,2*pi,50) ;
x = 2 * sin(3*t) ;
y = 3 * sin(4*t) ;

figure % force view
h = plot(x(1),y(1),'b-',x(1),y(1),'ro') ;
pause(0.5) ;
axis([-3 3 -4 14]) ; % specify a strange axis, that is not changed

for ii=2:numel(x),
% update plots
set(h(1),'xdata',x(1:ii),'ydata',y(1:ii)) ;
set(h(2),'xdata',x(ii),'ydata',y(ii)) ;
pause(0.1) ; drawnow ; % visibility
end

http://www.mathworks.com/matlabcentral/newsreader/view_thread/270439

关于matlab - 在 Matlab 中绘制动画时,如何防止轴动态变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23373489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com