Matlab中,下面一段程序运行时,总提示变量未定义,请问怎么解决?

2025-05-08 10:47:51
推荐回答(2个)
回答1:

函数文件一般是在指令窗口或者脚本文件中调用,不可直接运行。
先定义t和y
再调用函数 Lorenz(t,y)

回答2:

因为你就没有给定y的值啊。你定义的函数如下,%后面的是注释,你只给定了t=0,没有给定y的值。
function dy = Lorenz(t,y)
% Lorenz系统 % 系统微分方程:
% dx/dt = -a(x-y)
% dy/dt = x(r-z)-y
% dz/dt = xy-bz
% a=y(4)
% r=y(5)
% b=y(6)
dy=zeros(6,1);
t=0;
dy(1)=-y(4)*(y(1)-y(2));
dy(2)=y(1)*(y(5)-y(3))-y(2);
dy(3)=y(1)*y(2)-y(6)*y(3);
dy(4)=0;
dy(5)=0;
dy(6)=0;
end

另外,你函数定义的时候 dy = Lorenz(t,y) ,说明t和y是输入变量,你可以在函数体里面给定t和y的值,也可以算。但是既然是变量,一般是从外部给定参数值。你可以在命令窗口(command window)里面直接调用函数。例如 dy = Lorenz(0,10),这时候t=0,y=10