Move a columns to the right
8 次查看(过去 30 天)
显示 更早的评论
Hello everyone, How can I move/shift a set of columns in an array to the right? For example I have
B= [1 3 4 5 2 4; 2 8 6 7 9 8]
and I want to get this result:
S= [1 3 2 4 5 4; 2 8 9 6 7 8].
How can I do this? thank you in advance.
0 个评论
采纳的回答
Star Strider
2016-1-10
The only way I can think of to do it is to use the circshift function on columns 3:5:
S = [B(:,1:2) circshift(B(:,3:5),[0 1]) B(:,6)];
6 个评论
Star Strider
2016-1-10
As always, my pleasure!
If you want to rotate your matrices up-down one position instead of left-right one position, the circshift call would be:
S = circshift(B, [-1 0]);
With only two rows, the sign doesn’t have any noticeable effect. With larger matrices, it would.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!