round random a number

6 vues (au cours des 30 derniers jours)
Vadim Tambovtsev
Vadim Tambovtsev le 26 Oct 2016
Modifié(e) : Bruno Luong le 14 Sep 2018
Hello,
Suppose we have a number "3.76" and we want to round it either to 3 or 4 in a random way, how to do it? I didn't find the proper command in Matlab.

Réponse acceptée

James Tursa
James Tursa le 26 Oct 2016
Modifié(e) : James Tursa le 26 Oct 2016
For purely random rounding regardless of the fractional part:
x = your number
result = round(floor(x)+rand);
  1 commentaire
Bruno Luong
Bruno Luong le 13 Sep 2018
Modifié(e) : Bruno Luong le 14 Sep 2018
James's solution gives equi-probability between 3 and 4. If one want to simulate some sort of quantification noise, might be it is desired to have larger probability of 4 than 3 for 3.76 as input, something like
round(x+rand-0.5)
or (almost) equivalently
floor(x + rand)

Connectez-vous pour commenter.

Plus de réponses (1)

Layan Alshuhumi
Layan Alshuhumi le 13 Sep 2018
Make two variables, “Nmax” and “Nmin” and set Nmax to 5 and Nmin to 3 using the first two lines. On the third line, write the code to generate a random floating point number between 3 and 5 referencing your predefined variable

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by