Circshift an ND array by values in an (N-1)D array w/out for loop
显示 更早的评论
I have an ND array A that I would like to circshift (in its Nth dimension) by the corresponding values in an (N-1)D array b, ideally without a for loop (and/or fft/ifft). For example:
A(:,:,1) =
1 3 5
2 4 6
A(:,:,2) =
7 9 11
8 10 12
A(:,:,3) =
13 15 17
14 16 18
A(:,:,4) =
19 21 23
20 22 24
b =
1 -1 -3
-1 -1 0
with the result:
A_shift_b(:,:,1) =
19 9 23
8 10 6
A_shift_b(:,:,2) =
1 15 5
14 16 12
A_shift_b(:,:,3) =
7 21 11
20 22 18
A_shift_b(:,:,4) =
13 3 17
2 4 24
I've been trying to use arrayfun to get to a solution, but so far have been unsuccessful. Any help would be appreciated. Thanks!
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!