row circular shift in matrix
    9 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Abhishek Bakhla
 am 20 Apr. 2020
  
    
    
    
    
    Kommentiert: Abhishek Bakhla
 am 24 Apr. 2020
            How can I shift all the elements of a particular row in matrix in left circular shift or right circular shift.
0 Kommentare
Akzeptierte Antwort
  Tommy
      
 am 20 Apr. 2020
        
      Bearbeitet: Tommy
      
 am 23 Apr. 2020
  
      M(row,:) = [M(row,end) M(row,1:end-1)]; % shift to the right
M(row,:) = [M(row,2:end) M(row,1)]; % shift to the left
(edit) To shift by any amount:
M = randi(10,5)
shift = 8; row = 2;
[n,m] = size(M);
M(row,:) = [M(row,(end-mod(shift,m)+1):end) M(row,1:(end-mod(shift,m)))] % shift to the right
M(row,:) = [M(row,(mod(shift,m)+1):end) M(row,1:mod(shift,m))] % shift to the left
(edit) Fixed mistake
3 Kommentare
  Tommy
      
 am 23 Apr. 2020
				Yes sorry I goofed! I used n where I should've used m. Let me know if that fixes it for you.
Weitere Antworten (1)
Siehe auch
Kategorien
				Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


