Matlab 使用ode45时索引超过了矩阵维度

Matlab 使用ode45时索引超过了矩阵维度,matlab,ode,Matlab,Ode,我正在尝试用ode45解一个ode,它正在显示 function ydot=vdpol(t,y) t=0; y=0; mu=2; ydot=[y(2);mu*(1-y(1)^2)*y(2)-y(1)]; tspan=[0 20]; y0=[2;0]; [t,y]=ode45(vdpol,tspan,y0); size(t) size(y) plot(t,y(:,1),t,y(:,2),'--'); xlabel('time'); title('van der pol solut

我正在尝试用ode45解一个ode,它正在显示

function ydot=vdpol(t,y) 
t=0; 
y=0; 
mu=2;
ydot=[y(2);mu*(1-y(1)^2)*y(2)-y(1)]; 
tspan=[0 20]; y0=[2;0]; 
[t,y]=ode45(vdpol,tspan,y0);
size(t) 
size(y) 
plot(t,y(:,1),t,y(:,2),'--'); 
xlabel('time'); 
title('van der pol solution')
你的问题是:

ydot=[y(2);mu*(1-y(1)^2)*y(2)-y(1)];
您刚才试图引用
y
的第二个元素,但它不是数组:

whos y
Name      Size            Bytes  Class     Attributes

y         1x1                 8  double    
下一步:您不再使用
ydot
,所以我想您不需要它了! 下一步:使用
vdpol
,但不定义此函数或变量

下面是一个正确的解决方案(这不是我的代码,它来自):

你的问题是:

ydot=[y(2);mu*(1-y(1)^2)*y(2)-y(1)];
您刚才试图引用
y
的第二个元素,但它不是数组:

whos y
Name      Size            Bytes  Class     Attributes

y         1x1                 8  double    
下一步:您不再使用
ydot
,所以我想您不需要它了! 下一步:使用
vdpol
,但不定义此函数或变量

下面是一个正确的解决方案(这不是我的代码,它来自):


你能解释一下你愿意实现什么,你面临什么问题吗?你能解释一下你愿意实现什么,你面临什么问题吗?