左循环置换

yud*_*a25 1 matlab

我想用MATLAB进行左循环置换.考虑矩阵p:

p = [2 3 4 5];
Run Code Online (Sandbox Code Playgroud)

输出:

[2 3 4 5; 
 3 4 5 2;
 4 5 2 3;
 5 2 3 4];
Run Code Online (Sandbox Code Playgroud)

我希望代码可用于更大的数据.有人请帮我用MATLAB在代码中做这个.

Dan*_*Dan 5

无环路替代方案:

[X, Y] = meshgrid(1:numel(p));
p(mod(X+Y-2,numel(p))+1)
Run Code Online (Sandbox Code Playgroud)