web-dev-qa-db-fra.com

Générer un nombre aléatoire dans une certaine plage dans MATLAB

Comment puis-je générer un nombre aléatoire dans MATLAB entre 13 et 20?

37
crowso

Si vous recherchez des entiers pseudo-aléatoires uniformément répartis, utilisez: 

randi([13, 20])
56
zellus
8
TimCodes.NET
r = 13 + 7.*Rand(100,1);

Où 100,1 est la taille du vecteur désiré

6
pcofre

ocw.mit.edu est une excellente ressource qui m'a beaucoup aidé. randi est la meilleure option, mais si votre numéro est amusant, essayez d’utiliser la fonction Floor avec Rand pour obtenir ce que vous voulez.

J'ai dessiné une droite numérique et suis venu avec 

floor(Rand*8) + 13
1
ash_bobham

Vous pouvez aussi utiliser:

round(mod(Rand.*max,max-1))+min
0
moksef

La meilleure solution est randint, mais cette fonction produit des nombres entiers.

Vous pouvez utiliser Rand avec la fonction d'arrondi

  r = round(a + (b-a).*Rand(m,n));

Ceci produit un nombre aléatoire réel entre a et b, la taille de la matrice de sortie est m * n

0
PyMatFlow

si vous cherchez à générer aléatoirement tout le nombre dans un rang donné, vous pouvez essayer `r = randi ([a b], 1, d)

a = point de départ b = point final d = combien de nombres vous souhaitez générer, mais gardez à l'esprit que d doit être inférieur ou égal à b-a

0

Génère des valeurs à partir de la distribution uniforme sur le fichier intervalle [a, b].

      r = a + (b-a).*Rand(100,1);
0
user570593