如何从Matlab正确调用GEKKO

时间:2019-06-17 22:48:09

标签: python matlab call ode gekko

我找到了一个用于从Matlab调用python的函数。因此,我尝试使用此函数从Matlab调用GEKKO包来解决ODE。将gekko选项(remote = true)定义为函数或变量时出现错误。

我用Anaconda Prompt打开了Matlab。

m = py.gekko.GEKKO(remote==True);
m.time = py.numpy.linspace(0,20,100);
k = 10;
y = m.Var(5.0);
t = m.Param(m.time);
m.Equation(k*y.dt()==-t*y);
m.options.IMODE = 4;
m.solve(disp==True)

time = cellfun(@double,cell(m.time.tolist()));
y = cellfun(@double,cell(y.VALUE.value));
plot(time,y)
xlabel('Time')
ylabel('y')

错误消息 未定义的函数或变量“远程”。

ODE_gekko_matlab中的错误(第5行) m = py.gekko.GEKKO(remote == True); %在本地计算机上求解

1 个答案:

答案 0 :(得分:2)

选中此link,了解如何在Matlab中使用 pyargs 。 尝试使用m = py.gekko.GEKKO(pyargs('remote','True'));

m = py.gekko.GEKKO(pyargs('remote' , 'True'));
m.time = py.numpy.linspace(0,20,100);
k = 10;
y = m.Var(5.0);
t = m.Param(m.time);
m.Equation(k*y.dt()==-t*y);
m.options.IMODE = 4;
m.solve(disp==True)

time = cellfun(@double,cell(m.time.tolist()));
y = cellfun(@double,cell(y.VALUE.value));
plot(time,y)
xlabel('Time')
ylabel('y')

enter image description here