"Index exceeds matrix dimensions."
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Mauro De Francesco
el 26 de Sept. de 2017
Respondida: KSSV
el 26 de Sept. de 2017
Hello, I'm having a problem with this code
%%DATA
%Starting Point
R_I = [-5.5106881000000003e+03 1.5889450000000002e+03 5.8383016000000007e+03];
V_I = [-3.8639999999999999e+00 -6.5410000000000004e+00 -1.2840000000000000e+00];
%Planet
mi = 398600;
equat_Rt = 6378.1363;
polar_Rt = 6356.7523142;
%%COMPUTIING
t_0 = 0.1;
t_f = 100000;
options = odeset('Reltol',1e-13,'Abstol',1e-14,'Event',@closed_orbit);
X_0 = [R_I(1); R_I(2); R_I(3); V_I(1); V_I(2); V_I(3)];
[T,X] = ode113(@orbit_dynamics,[t_0 t_f],X_0,options,mi,R_I);
The function orbit_dynamics is this one
function [dX] = orbit_dynamics(X,mi,varargin)
x = X(1);
y = X(2);
z = X(3);
u = X(4);
v = X(5);
w = X(6);
% Position derivative is velocity
dx = u;
dy = v;
dz = w;
% Velocity derivative is acceleration
R = [x,y,z];
norm_R = norm(R);
du = -mi/norm_R^3 * x;
dv = -mi/norm_R^3 * y;
dw = -mi/norm_R^3 * z;
% Terminating data
dX = [dx dy dz du dv dw]';
end
The error that Matlab gives is
Index exceeds matrix dimensions.
Error in orbit_dynamics (line 4)
y = X(2);
Error in odearguments (line 90)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode113 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Error in orbit_motion (line 18)
[T,X] = ode113(@orbit_dynamics,[t_0 t_f],X_0,options,mi,R_I);
I ran the debug and it seems that when it enters the function orbit_dynamics, the vector X turns in a 1x1 vector, can anyone help me with that?
Respuesta aceptada
KSSV
el 26 de Sept. de 2017
Change the function:
[dX] = orbit_dynamics(X,mi,varargin) ;
to
[dX] = orbit_dynamics(t,X,mi,varargin) ;
0 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!