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??
6 views (last 30 days)
Show older comments
UTKARSH SINGH
on 4 Apr 2015
Commented: Image Analyst
on 3 Mar 2016
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.
0 Comments
Accepted Answer
Roger Stafford
on 4 Apr 2015
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 Comments
Triveni
on 3 Mar 2016
Is it possible to generate 500 random permutations of
[90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 -75 45 45 0 -45 15 30 ]
Image Analyst
on 3 Mar 2016
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.
More Answers (1)
Image Analyst
on 4 Apr 2015
Edited: Image Analyst
on 4 Apr 2015
Try randperm() or randi().
newSortingOrder = randperm(30);
0 Comments
See Also
Categories
Find more on Genetic Algorithm in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!