[問題] index out of bounds because numel(vidot)=3.已回收

看板MATLAB作者 (乖乖)時間16年前 (2010/03/17 23:36), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
問題: 我寫了 hw2.m 和 SloverHw2.m 這兩個程式,但是執行後, 它一直出現有如最下面的 錯誤訊息(Error information). 我不理解的是, 我已經在ode45()這個函式中給了 6個初始值 "6 5 4 3 2 1", 但是為何它一直說我超出範圍呢? ( index out of bounds because numel(vidot)=3 ) 我要如何修改程式碼, 才畫得出圖形呢? 謝謝大家的幫忙. *********hw2.m************************************ function vidot=hw2(t,vi) vidot(1)=vi(4); vidot(2)=vi(5); vidot(3)=vi(6); vidot(4)=(SumTorque-G+h*(vi(4)+vi(5))^2-(H12+H22+H32)*vidot(5) -(H13+H23+H33)*vidot(6))/(H11+H21+H31); vidot(5)=(SumTorque-G+h*(vi(4)+vi(5))^2-(H11+H21+H31)*vidot(4) -(H13+H23+H33)*vidot(6))/(H12+H22+H32); vidot(6)=(SumTorque-G+h*(vi(4)+vi(5))^2-(H11+H21+H31)*vidot(4) -(H13+H23+H33)*vidot(5))/(H13+H23+H33); vidot=[vidot(1);vidot(2);vidot(3);vidot(4);vidot(5);vidot(6)]; *********hw2.m************************************ *********SloverHw2.m********************************* global g m1 m2 m3 L1 L2 L3 Lc1 Lc2 Lc3 I1 I2 I3 g=9.81; m1=1; m2=1; m3=1; L1=1; L2=1; L3=0; Lc1=0.5; Lc2=0.5; Lc3=0; I1=1; I2=1; I3=1; [t,vi]=ode45('hw2',[0 10],[6 5 4 3 2 1]); plot(t,vi) *********SloverHw2.m********************************* **************Error information************************ Attempted to access vidot(5); index out of bounds because numel(vidot)=3. Error in ==> hw2 at 40 vidot(4)=(SumTorque-G+h*(vi(4)+vi(5))^2-(H12+H22+H32)*vidot(5)-(H13+H23+H33)*vidot(6))/(H11+H21+H31); Error in ==> funfun\private\odearguments at 110 f0 = feval(ode,t0,y0,args{:}); ODE15I sets args{1} to yp0. Error in ==> ode45 at 173 [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... Error in ==> SloverHw2 at 8 [t,vi]=ode45('hw2',[0 10],[6 5 4 3 2 1]); **************Error information************************ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.41.177

03/17 23:42, , 1F
你在定義vidot(4)時 還沒有vidot(5)和vidot(6)這樣沒辦法
03/17 23:42, 1F
文章代碼(AID): #1BeFRo2x (MATLAB)