我已经定义了一个函数
function dy = toggle(t,y,p)
dy = zeros(2,1);
dy(1) = - y(1) + p(1)./(1+y(2).^p(2));
dy(2) = - y(2) + p(1)./(1+y(1).^p(3));
并将其保存在与该函数同名的.m文件中。在另一个文件caltoggle.m中,我写道:
[T,Y] = ode45(@toggle,[0 100],[0.2,0.1],[],[3,2,2]);
当我运行脚本caltoggle.m时,我收到错误:
??? [T,Y] = ode45(@
|
Missing variable or function.
Error in ==> C:\MATLABR11\work\caltoggle.m
On line 1 ==>
caltoggle
以上代码是教程中的一个例子,所以应该是正确的。我的问题一般是我无法调用已定义的函数。
答案 0 :(得分:0)
如果其他文件不在同一目录中,则应将该目录添加到路径中 尝试用Matlab编写:
pathtool
此外,虽然可能不是您的情况,但如果您使用保留字命名文件,例如"尝试",则可能会造成严重破坏。
另外,尝试写
切换
它可能很有见地。
答案 1 :(得分:0)
在用于ODE求解器的Matlab documentation中,所有示例都将ode45
的第一个参数传递给2个变量的函数,而不是像函数toggle
那样的三个函数。您是否可以将toggle
函数更改为仅接受两个输入参数,并查看是否可以解决问题(作为第一个测试,只需设置p(:)=1
或类似的东西)