Generating a random matrix which has zero entries as well
Afficher commentaires plus anciens
When I generate a random matrix (for example, with the following code)
bounds = [-15,10];
A = rand(m,m) * range(bounds) + bounds(1)
there is no zero entry in the matrix. Could you please tell me how can I create a random matrix which has zero entries as well?
7 commentaires
Scott MacKenzie
le 5 Juin 2021
What about a random matrix of integers?
A = randi([-15 15], m, m)
Approximately 1 in every 31 values will be zero.
Mojtaba Mohareri
le 5 Juin 2021
Scott MacKenzie
le 5 Juin 2021
Well, then bear in mind that 0 is effectively 0.00000000 and is no more likely to emerge from the rand function than a number such as 1.23456789. That's why you are not seeing any zeros in the matrix.
Then the chances of getting exactly 0 are minuscule. There are roughly 2^64 values possible if you are using the double datatype (less, because there are some special cases). It is a bit too tricky to calculate from memory how many of those are in the range 0-1, but there are many of them.
You will either have to round, be extremely lucky, generate a giant array, or accept that there will not be any zeros in your matrix.
Mojtaba Mohareri
le 5 Juin 2021
the cyclist
le 5 Juin 2021
There are several things you could do, but it depends on what properties you need your random distribution to have.
For example, you could generate the m*m random numbers as you originally did, but then generate a random number of zeros from 0:m*m, and fill them into random location in your array.
So, first, think carefully about what specific properties you need your random distribution to have, then we may be able to help you generate that distribution. It is not enough to say "numbers between -15 and 15, where some are zeros". You need to be very specific.
Mojtaba Mohareri
le 5 Juin 2021
Réponses (0)
Catégories
En savoir plus sur Random Number Generation dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!