Creating a random permutation that always start with a specific value

13 vues (au cours des 30 derniers jours)
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

Réponse acceptée

Birdman
Birdman le 5 Avr 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 commentaires
Thomas Beerten
Thomas Beerten le 5 Avr 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 le 5 Avr 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 5 Avr 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!

Translated by