\def\title{Een testprogramma voor MWEB (Matlab Web)}
\def\xwebContentsTop{\bfseries
  \hrule\par\medskip
  \centerline{\Large\title}
  \vspace{2cm}
  \centerline{\large Mark Potse}
  \vspace{2cm}}  % this material will start the table of contents page

\def\Nchannels{N_{{\rm channels}}}

\par\medskip\hrule

@* Test. Deze file dient voor het testen van {\tt MWEB} (Matlab Web).
Het bevat geen zinvol programma, maar alleen veel verschillende
matlab-structuren voor het
testen van de parser van {\tt mweave}.

% test the rebinder
\gdef\1{This is the replacement text of \string\1}

 Mark Potse

 e-mail: potse@@amc.uva.nl

@f maptype int
@f maptype int
@f maptype int
@f maptype int
@f maptype int
@f maptype int
@f maptype int

@u

x = [0 0 2 pi, 2*pi, 5, 4.5 20 9243857 inf];
a = 1;
b = 2
c = pi/4;
bs_ColourOpt = 1


@*2 if-elseif-else-end constructions. In the title of a ``starred
section'' program text may not be used, but in the documentation it
may: |if (a=2)|, |elseif|, |else| and |end|.

inserted \string\1 here: \1

@u

if (a ~= b)
  a = b;
end; 

if (a ~= b)
  @< adjust baseline @> @;
end ;

if (a == b)
  a = some_lousy_variable_with_an_ExtraordinaryLongName
  text(2, 3, 'blah bla blah');
elseif ( a< b)
  text(5, 3, 'blah bla bla')
elseif x
  if x == 1
     y = x;
  elseif (x == 2)
     y = x + 1;
  else
     y = x + 3;
  end;
else
  text(2, 3, 'blah bla blah');
  text(10, 7, 'bla blah blah');
end;


@ An |if| without braces:
@u
if a ~= b
  a = b;
end;
@<a |for| loop@> @;
c = 2/3;



@*2 for. Another example.
@<a |for| loop@>=

for i = 1:10	% with a comment
for j = 1:20
  vect(i) = matrix(2*i+1,j);
end;
end;

@ vervolg.
@<a |for| loop@>=

for i = [1:10]
  vect(i) = 2*i+1;
end;



@* bs\_map.
Het volgende is overgenomen uit {\tt bs\_map.m}

@ For declarations like |clear|, |global| etc.:
@u


    global PosInterval     NegInterval      bso_Fine       ...
           bso_Points      bs_BeginSampleNr bs_EndSampleNr ...
           bso_MapAxSize   bso_Type         bso_Shoulders  ...
           bso_PlusMinSize bso_Grey         bso_Nlevels    ...

@< parameter handling @>
@< adjust baseline @>
@< make a figure window and axes @>
@< patient information @>
@< Make the map @>
@< print map info @>
@< create menu's @>

    
@  String handling:
@< parameter handling @>=
    bso_ml('Display','no');
    bso_map('Display','no');

@
@< parameter handling @>=
    if (bs_ColourOpt & (bso_Type=='p' | bso_Type=='c'))
       textcolour = 'y';
    else
       textcolour = 'k';
    end;
     
@ In Matlab, the quote also serves as a transpose-operator:
@u

a = ones(3,3);
c = b'   
c = 4'; c = (a+b)';  
c = (a + 4i).'   

@ Quotes in a string.
@u

text(1, 2, 'He said: ''foo!''; '''' ')
  
@*2 function calls.

@d Nchannels = 64
@f Nchannels TeX

@< adjust baseline @>=
bs_Reg = ones(Nchannels,500);
bs_rejected = zeros(Nchannels);
bs_BaseLineAlgorithm = 1;
bs_BaseLn1 = 200;
bs_BaseLn2 = 400;
bs_BaseLineWidth = 10;

    bs_BA_Reg = bs_adj( ...
       bs_Reg, bs_rejected, bs_BaseLineAlgorithm, ...
       bs_BaseLn1, bs_BaseLn2, bs_BaseLineWidth);

    
@ 
@< make a figure window and axes @>=

    bs_map_winH = a4paper(bs_FigScale);
    bs_map_AX1 = axes( ...
       'Units','normalized', ...
       'Position',[0 0 1 1], ...
       'Visible','off', ...
       'XLim',[0, 21], ...
       'YLim',[0 29.7], ...
       'Clipping','off');


@ 
@< patient information @>=
    if (length(bs_infostring) >= 16)
       text(3, 28.5, bs_infostring(10:16), 'Color', textcolour);
    else
       text(3, 28.5, '?', 'Color', textcolour);
    end;
    text(7, 28.5, bs_filename, 'Color', textcolour);


@ 
@< Make the map @>=

vec = zeros(64,1);
vec = bs_BA_Reg(1:64,bs_CurSampleNr);
bs_Map = getmap(vec,bs_rejected);
@< define axes @>
@< call |bsm| @> 

   

@ 
@< define axes @>=
      bs_map_AX2 = axes( ...
        'Units','normalized', ...
        'Position',[4/21, 12/29.7, bso_MapAxSize/21, bso_MapAxSize/29.7], ...
        'Clipping','off');


@ Genest inspringen:
@< call |bsm| @>=

    @< define axes @>
    bsm(bs_Map, ...
       'Type',bso_Type, ...
       'Shoulders',bso_Shoulders, ...
       'PlusMinSize',bso_PlusMinSize, ...
       'Grey',bso_Grey, ...
       'Fine',bso_Fine, ...
       'Nlevels',bso_Nlevels, ...
       'Leadnr',bso_Leadnr, ...
       'Lead',(bs_BA_Reg(abs(bso_Leadnr),bso_Lead_Begin:bso_Lead_End)), ...
       'Points',[bso_Points(1)-bso_Lead_Begin, ...
                 bso_Points(2)-bso_Lead_Begin]);


    drawnow  % Deze drawnow zorgt ervoor dat als er in het voorgaande een
             % sequence lost raakt het script daar niet op blijft hangen.


@ 
@< print map info @>=

    @< define axes @>
    text (3, 6,['pos. contour interval: ', num2str(PosInterval)], ...
      'Color', textcolour);
    text (3, 5,['neg. contour interval: ', num2str(NegInterval)], ...
      'Color', textcolour);
    text (3, 4,['Sample: ', num2str(bs_CurSampleNr)], ...
        'Color', textcolour);
    text (3, 3,['Baseline: ', ...
        num2str(bs_BaseLn1), '    ', ...
        num2str(bs_BaseLn2)], 'Color', textcolour);



@ De extra ruimte wordt gegenereerd door dubbele newlines, die in MWEB
equivalent zijn met \verb"@@#".
@< create menu's @>=

    bs_bsmWin_PrintMenu = uimenu('Label','Print','Separator','on');

   bs_bsmWin_PrintSubMenu = uimenu(bs_bsmWin_PrintMenu, ...
      'Label',' ', ...
      'Separator', 'on', ...
      'Callback',[ 'print -dps -f', num2str(gcf)]); 

@ functiedefinities:

@u  
function blah(arg1, arg2)

a = function boeh(arg1)
  
  for i = 1:3
     a = b + c(i)
  end
  bs_map_AX2 = axes( ...
        'Units','normalized', ...
        'Position',[4/21, 12/29.7, bso_MapAxSize/21, bso_MapAxSize/29.7], ...
        'Clipping','off');