Add a command for unique permutations

At this moment I have function which creates a matrix of n rows and Nvar columns. I want to add to the if-line that each permutation should be unique.
E.g. when I enter InitialPopulation(60,3); I get a lot of the same permutations but I want him to make a list of the unique ones.
This is my code:
function InitPop = InitialPopulation(n,Nvar)
InitPop = zeros(n, Nvar);
for index = 1:n
test = 0;
while test ~= 1
test = 0;
InitPop(index,:) = randperm(Nvar);
%random permutations of the vertices
if InitPop(index, 1) == 1
test = 1;
%making sure that the permutation starts with the first vertex
end
end
end
end

답변 (1개)

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH 2019년 12월 4일

0 개 추천

you can make
list = unique (InitialPopulation (60,3), 'rows')
but it would no longer be 60 in size
On the other hand if you want to get all the permutations you can simply do:
perms (1: 3)

카테고리

도움말 센터File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품

질문:

2019년 12월 4일

댓글:

2019년 12월 4일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by