Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

matlab 'Index exceeds array boundaries'

2 visualizzazioni (ultimi 30 giorni)
alsgud qor
alsgud qor il 19 Apr 2020
Chiuso: MATLAB Answer Bot il 20 Ago 2021
by this code, that error happens...and i dunno why...
function H12 =H1(t,X)
m=10;
c=1000;
k=100000;
e=0.001;
w=100;
R=0.5;
X=R*cos(w*t);
Y=R*sin(w*t);
F1=m*e*w^2*cos(w*t);
F2=m*e*w^2*sin(w*t);
H12=[X(2); -c/m*X(2)-k/m*X(1)+F1/m];
end
--------------------------------------------------------
t=0:0.1:20;
X0=[0,0];
>>
[t,X]=ode45(@H1,t,X0);
  2 Commenti
madhan ravi
madhan ravi il 19 Apr 2020
Modificato: madhan ravi il 19 Apr 2020
What’s X(2) ? Will you post the latex form of the equation?
alsgud qor
alsgud qor il 19 Apr 2020
Modificato: alsgud qor il 19 Apr 2020
It s a second derivate form...um..I think I misunderstood that matlab automatically understood that thing...also X(1) is equal to X's first derivate..I put
X(1)=diff(X);
X(2)=diff(X(1));
in that function and it s still ain't working...

Risposte (1)

Devineni Aslesha
Devineni Aslesha il 21 Apr 2020
Modificato: Devineni Aslesha il 21 Apr 2020
In the given code, the initial conditions are passed to 'ode45' from the variable 'X0' which is a vector. The 'X0' values are taken by the variable 'X' to obtain the ode solver output. However, in the code, the variable 'X' is modified in such a way that it becomes a scalar value due to which the error occurs. The error can be resolved by not modifying the variable 'X' in the function definition.
I would like to know why the variable 'X' has to be modified in the function definition.

Questa domanda è chiusa.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by