Adding additional outputs is permitted, providing that they are not used in the ode45 call. Normally, this is not a problem, because unless more outputs are requested in the calling script or function, only the first output is used.
The only way to recover them is to use the returned independent variable (usually time) vector and the solved dependent variables in a for loop and save the other desired output at each step of the loop.
[t,y] = ode45(@odefcn, tspan, ic);
[~,radii(k,:)] = odefcn(t(k),y(k,:));
function [dy,radius] = odefcn(t,y)
radius = hypot(y(1),y(2));
dy(2) = radius * cos(y(1)) * sin(y(2));