Create random permutations of an array of decimals or a vector of decimals.

2 views (last 30 days)
If i have the following vector [0;0.25;0.75;0.5], how i can create 2 or 3 or n permutations? I cannot use randperm, because works only with integers. Thank you in advance!
  2 Comments
John D'Errico
John D'Errico on 24 Jan 2016
Edited: John D'Errico on 24 Jan 2016
Hmm. You cannot use the numbers that randperm will produce as indexes into the vector in question? Gosh, I thought you could do that. So this won't work at all:
v = [0;0.25;0.75;0.5],
ind = randperm(numel(v));
v(ind)
I really thought that would work too. Maybe you should try it? :)
Dennis_Pana
Dennis_Pana on 24 Jan 2016
It works!! How i can create 2 or 3 or n different permutations without using a for loop? Thank you again!

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 24 Jan 2016
N = 3;
v = [0;0.25;0.75;0.5];
[~, idx] = sort(rand(N, length(v)), 2);
permuted_v = v(idx);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!