How to generate a no. of permutations(lets say 100) of a particular row of a matrix(consisting of 30 coloumns) and store the generated permutation into another array row wise??

4 次查看(过去 30 天)
Basically I am trying to generate population for my chromosome in genetic algorithm. I have made an array of 30 elements and now to generate the population, I have to permutate the elements of the array and store these permutations in form of a matrix row wise.Now can I do this using permute and other permutation functions in matlab or will I have to make a different method to generate this.Any reference codes shall be very helpful.

采纳的回答

Roger Stafford
Roger Stafford 2015-4-4
If r is the 30-element row vector being used, do this:
m = 100;
n = 30;
[~,p] = sort(rand(m,n),2);
s = reshape(r(p),m,n);
The rows of matrix s will each be a random permutation of r.
  2 个评论
Image Analyst
Image Analyst 2016-3-3
Yes
m = [90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 -75 45 45 0 -45 15 30 ];
newSortingOrder = randperm(length(m));
mScrambled = m(newSortingOrder);
Just call that code 500 times to get 500 different permutations.

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2015-4-4
编辑:Image Analyst 2015-4-4
Try randperm() or randi().
newSortingOrder = randperm(30);

类别

Help CenterFile Exchange 中查找有关 Genetic Algorithm 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by