"Michael Doukas" wrote in message <email@example.com>... > I have the following code (it is for a Tabu search algorithm): > > 1: InitialSol=generator; > 2: lsol=size(InitialSol,2); > 3: List=zeros(l,lsol); > 4: i=0; > 5: > 6: while i<=l > 7: % tweak the initial sol > 8: Sol=tweak(InitialSol); > 9: % check if tweaked child already exists in the tabu list > 10: if ismember(Sol,List)==0 > 11: % if it does not exist add it in the list > 12: List=circshift(List,1); > 13: List(i,:)=Sol; > 14: i=i+1; > 15: end > 16: end > > But it reaches line 13 and throws: > Subscript indices must either be real positive integers or logicals. > Error in ts (line 40) > List(i,:)=Sol;
I checked the loop and apparently it reaches i=2 and after that i is not increasing. It just creates new Sol without checking if the Sol if in the List. Therefore, it never exists the loop.