# MATLAB: S-function error

hi guys when i try to use the follow s-function in a simulink blocket, i obtain this error:
Sizes vector returned by MATLAB S-function 'NARMASYSTEM' in 'NARMA/S-Function' must be a real vector consisting of integer value of length 7
This is the function code:
function [sys,x0,str,ts] = NARMASYSTEM(t,x,u,flag)%M-file S-function for defining a discrete system.% This S-function implements discrete equations% Generate a discrete nonlinear system:a1=0.2;a2=0.1;g1=1;g2=0.2;%=-0.2b1=0.3;b2=-0.6;switch flag,  case 0    [sys,x0,str,ts] = mdlInitializeSizes(a1,a2,g1,g2,b1,b2); % Initialization    case 2     [sys,x0,str,ts] = mdlUpdates(t,x,u,a1,a2,g1,g2,b1,b2); % Update discrete states    case 3      [sys,x0,str,ts] = mdlOutputs(t,x,u,a1,a2,g1,g2,b1,b2); % Calculate outputs    case {1, 4, 9} % Unused flags      sys = [];    otherwise      error(['unhandled flag = ',num2str(flag)]); % Error handling  end  % End of dsfunc.%==============================================================% Initialization%==============================================================function [sys,x0,str,ts] = mdlInitializeSizes(a1,a2,g1,g2,b1,b2)% Call simsizes for a sizes structure, fill it in, and convert it % to a sizes array.sizes = simsizes;sizes.NumContStates  = 0;sizes.NumDiscStates  = 2;sizes.NumOutputs     = 2;sizes.NumInputs      = 2;sizes.DirFeedthrough = 0; % Matrix D is non-empty.sizes.NumSampleTimes = 0.05;sys = simsizes(sizes); x0  = [0 1];   % Initialize the discrete states.str = [];          % Set str to an empty matrix.ts  = [1 0];       % sample time: [period, offset]% End of mdlInitializeSizes.%==============================================================% Update the discrete states%==============================================================function sys = mdlUpdates(t,x,u,a1,a2,g1,g2,b1,b2)sys(1) =a1*x(1)*cos(x(1))+a2*(x(1)^2)/(1+x(1)^2)+g1*x(2) ;sys(2)=b1*sin(x(1))+b2*(x(1)^3)/(2+x(1)^2)+g2*u(1)+u(2);% End of mdlUpdate.%==============================================================% Calculate outputs%==============================================================function sys = mdlOutputs(t,x,u,a1,a2,g1,g2,b1,b2)sys(1) =x(1);sys(2)=x(2);% End of mdlOutputs.

   sizes.NumSampleTimes = 0.05;
   sizes.NumSampleTimes = 1;