How to perform circshift on specific elements?
8 次查看(过去 30 天)
显示 更早的评论
I have a much larger dataset but given A = [1 2 3 4; 5 6 7 8; 9 10 11 12], how can I use circshift on the odd rows and only columns 2 - 3 to move the values one column to the left. I know those values are indexed by A = A(1:2:end, 2:3); and the circshift should be circshift(A, [0 -1]) but I am having trouble putting it all together.
0 个评论
采纳的回答
Rik
2020-11-20
You are overwriting the original array, instead of using circshift on the partial array.
A = [1 2 3 4; 5 6 7 8; 9 10 11 12];
L = false(size(A));
L(1:2:end, 2:3) = true;
A_temp = A(L);
A_temp = circshift(A_temp, [0 -1]);
A(L) = A_temp;
%Or with more compact notation:
A = [1 2 3 4; 5 6 7 8; 9 10 11 12];
A(1:2:end, 2:3) = circshift(A(1:2:end, 2:3), [0 -1]);
disp(A)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!