Creating a random permutation that always start with a specific value

11 views (last 30 days)
Dear all,
I want to create a vector of the size ten that starts with a the value one and the rest must be random. Therefore I wanted to do the following: N = [1 randperm(9)]. However, randperm only returns the values between 1 and 9 in such a case. Is there anyone who knows how this works or knows another function that could help me with my problem.
Kind regards, Thomas

Accepted Answer

Birdman
Birdman on 5 Apr 2018
It sounds like randi function can help you. First argument specifies the interval that integer values will be generated. Second and third argument specifies the number of row and column respectively.
N=[1 randi([2 9],1,8]
  2 Comments
Thomas Beerten
Thomas Beerten on 5 Apr 2018
Thanks for your answer. The problem with the answer is that it creates a vector that contains the same numbers since it creates random numbers. I wanted to use randperm such that each number is present only once in the vector. Such that you get a vector that looks the following: [1 2 3 4 5 7 6 8 9 10]. Do you may know if that is possible with the function randi?
Regards
Birdman
Birdman on 5 Apr 2018
No that is not possible with randi. You may use randsample as follows to uniquely create numbers:
randsample(1:10,10)
But the order will be random.

Sign in to comment.

More Answers (1)

Torsten
Torsten on 5 Apr 2018
N=[1 1+randperm(9)];
Best wishes
Torsten.

Community Treasure Hunt

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

Start Hunting!