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

2 次查看(过去 30 天)
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 个评论
John D'Errico
John D'Errico 2016-1-24
编辑:John D'Errico 2016-1-24
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 2016-1-24
It works!! How i can create 2 or 3 or n different permutations without using a for loop? Thank you again!

请先登录,再进行评论。

采纳的回答

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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by