How to sort the elements of a matrix in a random order
Show older comments
I have three matrix
A=[4,5,8,1,6,3]', B =[1,2,3,7,9,6]' and C=[3,1,2,4,7,9]'
and I want to generate X=[A B C] such that each element in A,B,C is randomly placed. I amusing Matlab 2007b
2 Comments
Azzi Abdelmalek
on 28 Aug 2012
each element in A,B,C is randomly placed before or after concatenation?
Chimezie Umezie
on 28 Aug 2012
Accepted Answer
More Answers (3)
Matlabbey
on 28 Aug 2012
0 votes
maybe you could try making a new random matrix and sorting by those values.
Azzi Abdelmalek
on 28 Aug 2012
Edited: Azzi Abdelmalek
on 28 Aug 2012
A=[4,5,8,1,6,3]', B =[1,2,3,7,9,6]', C=[3,1,2,4,7,9]'
nA=length(A);
a1=perms(1:nA);nA1=size(a1,1);
res=[A(a1(round(nA1*rand(1,1)),:)); B(a1(round(nA1*rand(1,1)),:)); C(a1(round(nA1*rand(1,1)),:))]
2 Comments
Chimezie Umezie
on 28 Aug 2012
Edited: Chimezie Umezie
on 28 Aug 2012
Azzi Abdelmalek
on 28 Aug 2012
replace randi with round(nA1*rand(1,1))
Andrei Bobrov
on 28 Aug 2012
abc = [A,B,C]
[~,idx] = sort(rand(size(abc)))
out = abc(sub2ind(size(abc),idx,ones(size(abc,1),1)*(1:size(abc,2))));
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!