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

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

37
demandé sur Amro 2011-02-22 14:57:06

9 réponses

si vous cherchez des entiers pseudorandom uniformément répartis, utilisez:

randi([13, 20])
54
répondu zellus 2014-02-24 04:08:23
8
répondu TimCodes.NET 2011-02-22 11:59:45
r = 13 + 7.*rand(100,1);

où 100,1 est la taille du vecteur décrit

6
répondu pcofre 2011-02-22 12:01:39

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
1
répondu ash_bobham 2014-12-10 11:24:30

Vous pouvez aussi utiliser:

round(mod(rand.*max,max-1))+min
0
répondu moksef 2014-08-02 07:34:56

générer des valeurs à partir de la distribution uniforme l'intervalle [a, b].

      r = a + (b-a).*rand(100,1);
0
répondu user570593 2015-02-05 15:43:23

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

0
répondu Gurlal Singh Gill 2017-06-05 07:19:53

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

0
répondu PyMatFlow 2018-06-25 08:44:03

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)
-1
répondu M. Allahyari 2014-02-24 04:15:05