我需要对形状的两个微分方程进行交互式模拟:
der(x)= A * x + c1 * y
der(y)= c2 * x + c3 * y
其中 der(x) 是 x 的时间导数
但是我需要能够A
在模拟实时运行时进行更改。
我是 matlab 的新手,但我稍微摸索了一下,所以我不是一个完全的菜鸟
我需要对形状的两个微分方程进行交互式模拟:
der(x)= A * x + c1 * y
der(y)= c2 * x + c3 * y
其中 der(x) 是 x 的时间导数
但是我需要能够A
在模拟实时运行时进行更改。
我是 matlab 的新手,但我稍微摸索了一下,所以我不是一个完全的菜鸟
我过去有两种方法。根据您是使用 Matlab 的ode
函数还是您自己的函数,不同的事情可能会更容易。
如果您正在实时绘制图形并使用自己的 ODE 求解器,则可以在单个时间步上运行求解器,绘制结果并使用 akeyPressFcn
修改参数。这是我的首选方法,它的工作原理如下:首先打开您的图形窗口
figHandle = figure('KeyPressFcn',@keyControl);
然后运行您的 ODE 求解器,一次一个时间步长并绘制结果。该keyControl
函数如下所示:
function keyControl(varargin)
cmd = get(figHandle,'CurrentCharacter');
switch double(cmd)
case 30 % up arrow for example
end
end
如果您使用的是 Matlab ODE 求解器,您可以使用 anOutputFcn
来修改一些数据(尽管这可能有点笨拙)。