How to use randperm to create a vector with multiples of the same number?

1 次查看(过去 30 天)
Let's say I want to create a shuffled 1x26 vector with the values 2-11 but the value 10 comes up 4 times. So the vector might look something like
A = 2 10 10 3 4 10 6 7 10 8 9 11 5 10 10 10 2 4 3 5 11 7 9 6 10 8
What line of code would do that? I have previously used a similar code
A_before = repmat(1:13 , [1 2]);
A = A_before(randperm(26))
and would like something similar to that but where the range is 2-11 and value 10 appears four times. (So one batch of 13 values will have four 10s, the whole batch of 26 values will have a total of eight 10s)
  2 个评论
Jan
Jan 2016-2-22
编辑:Jan 2016-2-22
What does "not with consecutive numbers" mean? Please define exactly, what you want to achieve. The less the readers have to guess, the better.
lauuser1
lauuser1 2016-2-22
Well I guess I technically am looking for consecutive numbers but what I'm trying to say is instead of the numbers 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 I want it to be 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11

请先登录,再进行评论。

采纳的回答

Guillaume
Guillaume 2016-2-22
So, why not?
A_before = repmat([2:11, 10, 10, 10] , [1 2]);
A = A_before(randperm(26))

更多回答(0 个)

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by