function [totwiederholung,totzaehler,stimnummercell,restliste]=ziehstimnumnachabsbed(k,anzahlstimuli,groessenreqinds,cellstr)

%   

%   This software is protected by german copyright and international treaties.             
%   Copyright 2004 Markus Junghöfer & Peter Peyk. All Rights Reserved.                     
%                                                                                          
%   THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE        
%   NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO,    
%   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE    
%   OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
%   TRADEMARKS OR OTHER RIGHTS. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT,       
%   INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE      
%   OR DOCUMENTATION.                                                                      

stimnummernliste=linspace(1,anzahlstimuli,anzahlstimuli);
totwiederholung=[];
totzaehler=1;
stimnummercell=cell(length(cellstr),1);

%mats mit stimnummern in reihenfolge von cellstr
for z=1:length(cellstr)
    trymat=[];
    celladressstr=strrep(cellstr{z},' ','');
    celladress=str2num(strrep(celladressstr,'cell',''));
    aktivecell=find(groessenreqinds(:,3)==celladress);
    stimnummercell{z,1}=zeros(groessenreqinds(aktivecell,2),1);
    %applymat :   reqnumber; 
    applymat=[];
    u=1;    
    for x=1:k-1 %k=anzahlabsolutreqs+1
        if ~isempty(absolutreqs{x,3})
            if celladress==absolutreqs{x,3}
                applymat(u,1)= x;
                u=u+1;
            end
        end
    end
    for y=1:groessenreqinds(aktivecell,2) %bis anzahlstimuli !
        breakstatus = 0 ;
        while breakstatus == 0;
            wiederholung = 1;
             wegindexmat=[];
             for g=1:length(totwiederholung)
                wegindexmat(g)=find(totwiederholung(g)==stimnummernliste);
             end
             restliste=stimnummernliste;
             restliste(wegindexmat)=[];
             tried=0;
            while wiederholung == 1 | tried == 1
                rand('state',sum(100*clock));
                stimnummer=round(rand*(anzahlstimuli-1)+1);
                wiederholung = 0;
                tried = 0;
                for widindex=1:length(stimnummercell{z,1})
                    if stimnummer==stimnummercell{z,1}(widindex,1)
                        wiederholung = 1;
                    end
                end
                for c=1:length(totwiederholung)
                    if stimnummer==totwiederholung(c,1)
                        wiederholung = 1;
                    end
                end
                               
                for g=1:length(trymat)
                    if stimnummer==trymat(g,1)
                        tried=1;
                    end
                end
                
                wegindexmat=[];
                for g=1:length(totwiederholung)
                    wegindexmat(g)=find(totwiederholung(g)==stimnummernliste);
                end
                restliste=stimnummernliste;
                restliste(wegindexmat)=[];
                if length(trymat)>=length(restliste)
                    errordlg(['Absolute Bedingungen von Zelle ',num2str(celladressmat(z)),...
                            ' konnten mit den zur Verfügung stehenden Stimuli nicht erfüllt werden!'],'Fehler!');
                    return
                end
                
            end
            breakstatus=1;
            %absolute Bedingungen prüfen
            
            if ~isempty(applymat)
                for t=1:length(applymat)
                    for dimzaehler=1:length(dim)
                        if ~isempty(findstr(dim{dimzaehler},absolutreqs{applymat(t,1),4}))
                            dimnummer=dimzaehler;
                        end
                    end
                    
                    if strcmp(get(scenarioradio,'Enable'),'on')
                        dimnummer=dimnummer-1;
                    end
%                     paramat(stimnummer,dimnummer)
%                     absolutreqs{applymat(t,1),5}
%                     absolutreqs{applymat(t,1),2}
%                     pause
                    
                    evalstring=[num2str(paramat(stimnummer,dimnummer)),absolutreqs{applymat(t,1),5},num2str(absolutreqs{applymat(t,1),2})];
                    if  ~eval(evalstring)               
                        breakstatus = 0 ; 
                        addstatus = 1;
                        if ~isempty(trymat)
                            if ~(sum(trymat==stimnummer)>0)
                                trymat=[trymat;stimnummer];
                            end
                        end
                    end
                end
            end
            if breakstatus==1
                stimnummercell{z,1}(y,1)=stimnummer;
                totwiederholung (totzaehler,1)=stimnummer;
                totzaehler=totzaehler+1;
            end
        end
    end
end 


return