Yes, it looks like you're right. I tried changing the call to
[t, u1] = ode45(@(t,y) f(t,y,beta), [0,T], [u0; v0], options);
Now I'm getting the messages
warning: Option "InitialStep" not set, new value 100.000000 is used
warning: Option "MaxStep" not set, new value 100.000000 is used
I would expect the initial time to be the "InitialStep", but I guess not. But when I add
options=odeset(options,'InitialStep',0);
to the initialization, it fails to run with this message
error: Solving has not been successful. The iterative integration loop exited at time t = 0.000000 before endpoint at tend = 1000.000000 was reached. This may happen if the stepsize grows smaller than defined in vminstepsize. Try to reduce the value of "InitialStep" and/or "MaxStep" with the command "odeset".
What's going on now?