| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  03-11-2008, 18:26 | #1 | 
| Senior Member Iscritto dal: May 2007 Città: Milano 
					Messaggi: 7103
				 | 
				
				[Matlab]for e while
			 
		A livello di complessita macchina...qualìè la diferenza tra un for con un if di controllo al suo interno ad ogni ciclo ed un while con la stessa condizione?? Grazie 
				__________________ Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go | 
|   |   | 
|  04-11-2008, 17:15 | #2 | 
| Senior Member Iscritto dal: May 2007 Città: Milano 
					Messaggi: 7103
				 | 
		che omerta      
				__________________ Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go | 
|   |   | 
|  04-11-2008, 18:03 | #3 | 
| Senior Member Iscritto dal: Jul 2002 Città: Reggio Calabria -> London 
					Messaggi: 12112
				 | 
		dipende da come viene tradotto il codice matlab in codice macchina... se non sbaglio il codice matlab è interpretato quindi con il while dovresti risparmiare qualcosina, mentre in un linguaggio con un compilatore decente oggi come oggi non credo ci siamo differenze se l'ottimizzatore fa il suo porco lavoro   
				__________________   | 
|   |   | 
|  04-11-2008, 18:06 | #4 | 
| Senior Member Iscritto dal: May 2007 Città: Milano 
					Messaggi: 7103
				 | 
		il codice da cui è sorta la domanda è questo. Sto usando un metodo iterativo di risoluzione sistemi lineare( Jacobi in particolare) e volevo ottimizzare un pochetto la situazione che ho visto in laboratorio. Codice: % Metodo Jacobi
function [x,iter]=jacobi(a,b,x0,nmax,tol) % tol e' la tolleranza per il 
                                          % test d'arresto
                                          % nmax e' il numero massimo di
                                          % iterazioni consentite
                                          % iter e' il contatore delle
                                          % iterazioni
M=diag(diag(a));
N=M-a;
ro=max(abs(eig(inv(M)*N)));
if ro>=1
    error(['raggio spettrale della matrice di iterazione e''' num2str(ro)])
end
% controllo sulla convergenza del metodo
x=x0;
iter=0;
while norm(b-a*x)/norm(b)>tol && iter<nmax
    x=M\(N*x+b);
    iter=iter+1;
end
				__________________ Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 11:54.









 
		 
		 
		 
		







 
  
 



 
                        
                        










