row circular shift in matrix
29 views (last 30 days)
Show older comments
Abhishek Bakhla
on 20 Apr 2020
Commented: Abhishek Bakhla
on 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 Comments
Accepted Answer
Tommy
on 20 Apr 2020
Edited: Tommy
on 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 Comments
Tommy
on 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.
More Answers (1)
See Also
Categories
Find more on Graphics Object Programming in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!