帮忙改个错误(Index exceeds matrix dimensions.)
function dy=Mathieu(t,x)dy=zeros(4,1);
dy(1)=x(2);
dy(2)=-x(1)+0.005*x(1)^3+1/8*(-x(2)+4*x(2)^3+sin(t));
dy(3)=x(4);
dy(4)=(1+0.015*x(1)^2)*x(3)+1/8*(-1+12*x(2)^2)*x(4);
tspan=linspace(1,1000,6000);
=ode45('Mathieu',tspan,);
plot(t(5000,10000),y(5000,10000))
??? Index exceeds matrix dimensions.
Error in ==> shijianbianli2 at 5
plot(t(5000,10000),y(5000,10000))
出现这个错误怎么改呢?请高手指教一下,我快郁闷死了,怎么改也不对
[ 本帖最后由 sigma665 于 2008-7-21 23:40 编辑 ] 楼主可以参考下面这个帖子
http://forum.vibunion.com/forum/thread-46001-1-1.html
的12楼
回复 2楼 的帖子
是啊,我看了,可是还是改不过来MATLAB学的太差了 我的matlab也很差 所以对你的程序不大了解
不过我觉得你
tspan=linspace(1,1000,6000);
=ode45('Mathieu',tspan,);
plot(t(5000,10000),y(5000,10000))
这部分有些问题吧
你的t和y都是几维的矩阵啊?我只知道tspan是1*6000的,不知道你的t y是不是也是一行N列的呢,如果那样的话,y(5000,10000)这个应该表示的是y的第5000行第10000列的数吧,他有那么多行列么?所以说超出范围了……
另外,你是不是想画plot(t(5000:10000),y(5000:10000))这个呢?
回复 4楼 的帖子
你说的太对了,呵呵但是就算我用plot(t(500:1000),y(500:1000,1))运行也是说超出范围
我是想画plot(t(5000:10000),y(5000:10000))这样的,因为前几百个瞬间点不要
回复 楼主 的帖子
你的这个错误提示很常见,下标越界了。可以参考本版置顶帖先。 plot(t(5000:end),y(5000:end))试试
页:
[1]