How to shift entries in a vector by the value of the number in that entry?
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
For example, if i have a vector  
T = [0, 0, 4, 0, 7, 0, 0, 5, 0, 9]
How would i go about moving every entry to the right by the number in that entry? 
Ie: T(3) 4 spaces to the right, T(4) 0 spaces to the right, and T(8) 5 spaces to the right so that it overwrites the orginal T(3).
Thanks.
Risposta accettata
  Stephen23
      
      
 il 19 Mar 2021
        T = [0, 0, 4, 0, 7, 0, 0, 5, 0, 9]
N = numel(T);
X = 1+mod(T+(0:N-1),N);
for k = 1:N
    T([k,X(k)]) = [0,T(k)];
end
disp(T)
2 Commenti
  Stephen23
      
      
 il 19 Mar 2021
				"Is there a way to repeat this multiple times? Ie this method used again on the new T vector, then again on the resultant T vector and so on?"
Put it inside another loop.
Vedere anche
Categorie
				Scopri di più su Loops and Conditional Statements 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!



