ODE动画图
Animated graph of ODE
我正在尝试通过从 2 列向量中绘制特定点来创建动画图,但我遇到了问题。
我已经尝试使用暂停、绘制、更改我的向量,但我的代码仍然无法正常工作。我在 for 循环中得到了我的矢量,它指定了需要绘制的点。
我使用 ODE45 制作了一个包含 2 行的列向量。
grid on
func=plot(t,x);
%set(gca,'XLim',[0 tmax])
for i=1:length(x)
set(func,'XData',x(1,i),'YData',x(2,i));
drawnow
end
我希望输出是一个动画图,但目前,我得到的不是一个非动画图,就是一堆错误,说我超出了数组边界。
您正在使用 plot
单点。 plot
的默认绘图样式是不显示单个点,而是用线连接输入数据。
要么将 LineSpec
属性 更改为例如'o'
:
func = plot(x(1,1), x(2,1), 'o');
或使用scatter
函数绘制单个点:
func = scatter(x(1,1), x(2,1));
我正在尝试通过从 2 列向量中绘制特定点来创建动画图,但我遇到了问题。
我已经尝试使用暂停、绘制、更改我的向量,但我的代码仍然无法正常工作。我在 for 循环中得到了我的矢量,它指定了需要绘制的点。
我使用 ODE45 制作了一个包含 2 行的列向量。
grid on
func=plot(t,x);
%set(gca,'XLim',[0 tmax])
for i=1:length(x)
set(func,'XData',x(1,i),'YData',x(2,i));
drawnow
end
我希望输出是一个动画图,但目前,我得到的不是一个非动画图,就是一堆错误,说我超出了数组边界。
您正在使用 plot
单点。 plot
的默认绘图样式是不显示单个点,而是用线连接输入数据。
要么将 LineSpec
属性 更改为例如'o'
:
func = plot(x(1,1), x(2,1), 'o');
或使用scatter
函数绘制单个点:
func = scatter(x(1,1), x(2,1));