[問題] index out of bounds because numel(vidot)=3.已回收
問題:
我寫了 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
03/17 23:42, 1F