function fevalFun(f,a,b)
% ::::::::::::::::::::::::::::::::::::::::::::::
disp(['°°°°°°°°°°°° S T A R T °°°°°°°°°°°°°°°°°°°° ',date,' °°°°°°°°°°°°°°°°°°°°°'])
close all;
% FUNCTION myFunPlot(f,a,b) 
% ::::::::::: zeichnet f(x) im Intervall (a,b)  dabei Auswertung von 'f' mittels feval
% ::::::::::: Aufruf : fevalplot(1,-2,1)
% :::::::::::             fevalplot(2,-pi,pi)
% :::::::::::             fevalplot(3,-4,5)
% ::::::::::              fevalplot(5,-2,1)
% ::::::::::::::::::::::::::::::::::::::::::::::::::::::
funy = {'humps'; 'sin'};
% ::::::::::::::::::::
x = a:0.01:b;
funy{3} = inline('1./x');                                              % SOS : divison to zero !!!
funy{4} = inline('1./(1+x.^2)+1./((x-5).^2+2) - 0.2');
funy{5} = inline('1/3.*x.^3 - 4/3.*x');
% :::::::::::::::::::::::::::: 
 if nargin<3   ||  ~(any(isreal(nargin))) 
     error(' SoS : too less  Inputs  !!');
     warndlg('next turn > min. 3 inputs')
     break
end
if ~(round(f)==f) 
    warndlg('not integer  or 1.Arg.:  0< f <6 ')
    break
end

% ::::::::::.
switch f
  case 3 
     Y = feval(funy{f}, x);
     ha = plot(x,Y, 'r-','Linewidth',2)
     grid
     set(gca, 'color','none','XLim', [a b])
  case {1,2,4,5}
     y = feval(funy{f},x);
     hb = plot(x,y, 'b-', 'Linewidth',2)
     grid
     set(gca, 'color','none','XLim', [a b])
     end
% :::::::::::: Koordinaten - Kreuz ::::::
line( 0*[1,1] ,get(gca,'Ylim'), 'color', 'k', 'linewidth',1.5 )
line( get(gca,'Xlim'), 0*[1,1],'color', 'k', 'linewidth',1.5 )
end

