About the usage of for, while and return
    4 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
I need to perform while loop many times as follows;
data=xlsread('data.xlsx','B1:B86640');
% first part
i_1=1;
while (abs(data(1)) > 0.10 || abs(data(2)) > 0.10 || abs(data(3)) > 0.10)
  i_1=i_1+1;
  if i_1==361;
    errordlg('iteration cannot be converged', 'Error!', 'modal')
    return   
  end
end
% second part
i_2=1;
while (abs(data(362)) > 0.10 || abs(data(363)) > 0.10 || abs(data(364)) > 0.10)
  i_2=i_2+1;
  if i_2==361;
    errordlg('iteration cannot be converged', 'Error!', 'modal')
   return  
  end
end
%third part
i_3=1;
while (abs(data(723)) > 0.10 || abs(data(724)) > 0.10 || abs(data(725)) > 0.10)
  i_3=i_3+1;
  if i_3==361;
    errordlg('iteration cannot be converged', 'Error!', 'modal')
    return  
  end
end
After these excecutions, I need to store i_1, i_2 and i_3 arrays. 
% for all abs(data(xx)) parts, xx equals to array of 1:361:86280;
How can I execute the above steps avoiding the repeated parts using a single part of different codes?
5 commentaires
Réponse acceptée
  dpb
      
      
 le 19 Mai 2020
        
      Modifié(e) : dpb
      
      
 le 19 Mai 2020
  
      With the clarification that operations are the same, then
data=xlsread('data.xlsx','B1:B86640');
% preliminaries -- define stopping criteria data points
N=2;                            % number consecutive points from 
IDX=[1:361:723];                % starting points
TOL=0.10;                       % tolerance
idxvec=cell2mat(arrayfun(@(ix) colon(ix,ix+N),IDX,'UniformOutput',false)); % expand indices to vector
MAXITER = 361;
iter=0;
while any(abs(data(idxvec)>TOL)
  iter=iter+1;
  if iter>=MAXITER
    errordlg('iteration cannot be converged', 'Error!', 'modal')
    return   
  end
  data=yourfunctionthatchangesdatagoeshere(iter,data);   %  do whatever it is need to do...
end
0 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


