在matlab中、如何进行全排列

如何编写matlab程序、在一个全排列(比如:1 2 3 4 5 )中插入4个0,且保证首尾必须是0,在排列中2个0不相邻。。。
有没有人懂得matlab编程多一点、求教啊、基于时间窗的运输车辆路线优化方面的东西尤其需要

A=perms([1 2 3 4 5 0 0]);
a1=find(A(:,1)==0);a2=find(A(:,7)==0);
aa=union(a1,a2);
A(aa,:)=[];
dA=diff(A,1,2);
[I,J]=find(dA==0);
A(I,:)=[];追问

谢谢了、但是还是做不出来、就是必须保证首尾必须是0,中间差值有2个0,也就是说排列出的一排应该是9个数、现在是7个、就是少首尾的那两个0,应该怎么加进去呢

追答

A=perms([1 2 3 4 5 0 0]);
a1=find(A(:,1)==0);a2=find(A(:,7)==0);
aa=union(a1,a2);
A(aa,:)=[];
dA=diff(A,1,2);
[I,J]=find(dA==0);
A(I,:)=[];[m,n]=size(A);
A0=zeros(m,1);
A=[A0 A A0];

温馨提示:答案为网友推荐,仅供参考
相似回答