Générer un nombre aléatoire dans une certaine plage de MATLAB
9 réponses
si vous cherchez des entiers pseudorandom uniformément répartis, utilisez:
randi([13, 20])
http://www.mathworks.com/help/techdoc/ref/rand.html
n = 13 + (rand(1) * 7);
r = 13 + 7.*rand(100,1);
où 100,1 est la taille du vecteur décrit
ocw.mit.edu est une excellente ressource qui m'a aidé un groupe. randi est la meilleure option, mais si vous vous amusez en nombre essayer d'utiliser la fonction de sol avec rand pour obtenir ce que vous voulez.
j'ai tracé une ligne de nombres et j'ai trouvé
floor(rand*8) + 13
générer des valeurs à partir de la distribution uniforme l'intervalle [a, b].
r = a + (b-a).*rand(100,1);
si vous cherchez à générer tous les numéros dans un rang spécifique au hasard, alors vous pouvez essayer "r = randi ([A b],1,d)
a = point de départ b=point final d= combien de nombres vous voulez générer mais gardez à l'esprit que d devrait être inférieur ou égal à b-a
la meilleure solution est randint
, mais cette fonction produit des nombres entiers.
Vous pouvez utiliser rand
avec fonction d'arrondissement
r = round(a + (b-a).*rand(m,n));
cela produit un nombre aléatoire réel entre a et b, La Taille de la matrice de sortie est m*n
si vous avez besoin d'un nombre aléatoire flottant entre 13 et 20
(20-13).*rand(1) + 13
si vous avez besoin d'un nombre entier aléatoire entre 13 et 20
floor((20-13).*rand(1) + 13)