如何通过特定规则在MATLAB中重新排列数组?

use*_*243 4 arrays matlab

假设我有这个数组:

a = [1,2,3,4,5];
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的:

1,2,3,4,5
2,1,3,4,5
3,1,2,4,5
4,1,2,3,5
5,1,2,3,4
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?此功能应对不同长度有效a.

Lea*_*ger 9

使用组合:

b = [a.' flipud(nchoosek(a,numel(a)-1))];
Run Code Online (Sandbox Code Playgroud)