Ayuda código MATLAB

Hola a todos, os pregunto a vosotros a ver si hay algún experto en MATLAB, yo llevo una semana encallado y no saco el agua clara...

Necesito compilar este código y no hay manera:

function dx=lotka_volterra2(t, x)
dx = [0; 0];
g1 = 1.2;
g2 = 0.2;
g11 = .00033;
g12 = .000166;
g21 = .001;
g22 = .000125;
dx(1) = g1 * x(1) - g1 * g12 * x(1) * x(2) - g1 * g11 * x(1) * x(1);
dx(2) = g2 * g21 * x(1) * x(2) - g2 * x(2)- g2 * g22 * x(2) * x(2);


>> global g1 g2 g11 g12 g21 g22
options = odeset('RelTol', 1e-4, 'AbsTol', [1e-7 1e-7]);
[t,x] = ode45('lotka_volterra2', [0 2000], [10000 100000], options);
plot(t,x);
plot(x(:,1),x(:,2));

Lo primero de lo que se me queja es de la variable 't' --> Undefined function or variable 't'.

He probado incluso cambiar la t por ~, como sugiere MATLAB pero nada, en google tampoco consigo información específica [snif]

Merci!
Lo que estoy viendo es que en la primera línea utilizas lotka_volterra2(t, x).
Pero ni t ni x están definidas.
Define las con algún valor y mira a ver si ese es el problema.
Pues yo lo he probado y me ha funcionado a la primera, con la versión r2017b, pero tampoco veo nada raro para que no funcione con otras.

Simplemente he guardado la función en un archivo separado "lotka_volterra.m" y otro archivo como script de matlab para ejecutar la simulación (con run o con su nombre en la consola de matlab). No me ha salido ningún error con la t. Lo unico que para que salgan dos gráficas hay que poner:
plot(t,x);
figure
plot(x(:,1),x(:,2));

Saludos.
Ya me funciona a mi tambien!

No se que he tocado pero ya funciona, merci por la ayuda!
3 respuestas