99问答网
所有问题
如何用matlab产生1到n的所有排列数
如题所述
举报该问题
推荐答案 2017-04-26
用perms函数就可以,例如求1到4的全排列:
v=[1,2,3,4];
>> f=perms(v)
f =
4 3 2 1
4 3 1 2
4 2 3 1
4 2 1 3
4 1 2 3
4 1 3 2
3 4 2 1
3 4 1 2
3 2 4 1
3 2 1 4
3 1 2 4
3 1 4 2
2 3 4 1
2 3 1 4
2 4 3 1
2 4 1 3
2 1 4 3
2 1 3 4
1 3 2 4
1 3 4 2
1 2 3 4
1 2 4 3
1 4 2 3
1 4 3 2
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/BttBtv7Xjj7WOWt7Oe.html
其他回答
第1个回答 2012-04-05
perms(1:n)
或者用递归算法
function yyy=pai(xxx)
n=length(xxx);
if n>1
yyy=[];
for i=1:n
zzz=pai( [xxx(1:i-1),xxx(i+1:end) ] );
yyy=[yyy;[ones(size(zzz,1),1).*xxx(i),zzz]];
end
else
yyy=xxx;
end
调用时写pai(1:n)就行了
相似回答
大家正在搜
相关问题
用MATLAB编程:生成1到n的一个随机排列
请教:如何用matlab将n个数的所有排列组合
如何用matlab生成所有行列和都是1的01矩阵
MATLAB中,怎样把一组给定的数据随机排列?
在MATLAB中如何随机产生一个由0和1两个数组成的长度为N...
用matlab如何产生服从N(0,1)的数
我想用MATLAB生成一个n*n的矩阵,矩阵的n^2个元素由...
用MATLAB生成1~100的随机数