I will appreciate any suggestion on this simple code. I want to substitute the elements of x >5 with 6 and x<5 with zero.
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
 for j=1:1:8
x=[1 2 3 4 5 6 7 8];
if x(j)>5
x(j)=subs(x(j),x(j),6);
else
x(j)=subs(x(j),x(j),0);
end
end
0 Commenti
Risposta accettata
  Azzi Abdelmalek
      
      
 il 15 Ago 2015
        idx=x>5
x(idx)=6
x(~idx)=0
4 Commenti
  Steven Lord
    
      
 il 16 Ago 2015
				Don't define x inside your loop. It's unnecessary and is just going to waste time.
Don't use a loop; vectorize your code as Azzi suggested.
&& is intended to short-circuit when the two criteria you're trying to AND together evaluate to a scalar value. In this case, your criteria do not evaluate to scalar values. In that case, use & to perform elementwise AND.
Più risposte (1)
Vedere anche
Categorie
				Scopri di più su Startup and Shutdown in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!