MATLAB: Error with ode23

errorMATLABodeode45

I searched a solution for some time and it seems that I was doing everything right but the error
Error using odearguments (line 110) Inputs must be floats, namely single or double.
Keeps appearing. Any ideas what I am doing wrong with ode23?
Tc = 60/72;
Ts = (2/5)*Tc;
R=1.05;
C=1.066;
syms ti q
IO = solve(90-int(q * (sin(pi*ti/Ts)),ti,0,Ts),q);
IO = subs(IO, 3.14, pi);
sine = @(t) sin (pi*t/Ts);
i = @(t) IO * sine(t).*(t <= Ts);
for n=1:5
if (n==1)
P_ss2 = 80;
end
t = (n-1)*Tc:0.01:n*Tc;
I = @(t) IO *sine(t-(n-1)*Tc).*(t <= ((n-1)*Tc+Ts));
z2 = @(t,y2) (-y2/(R*C)+I(t)/C);
[t_m2, P_m2] = ode23(z2, [(n-1)*Tc n*Tc], P_ss2);
P_ss2 = P_m2(end);
end

Best Answer

Tc=60/72;
Ts=(2/5)*Tc;
R=1.05;
C=1.066;
I0=45*pi/Ts;
P_ss2=80;
for n=1:5
func=@(t,y)(-y/R+I0*sin(pi*(t-(n-1)*Tc)/Ts)*(t <= ((n-1)*Tc+Ts)))/C;
[t_m2, P_m2] = ode23(func, [(n-1)*Tc n*Tc], P_ss2);
P_ss2 = P_m2(end);
end
Best wishes
Torsten.