Hi! I want to generate a column of 30 randomly varying -1s and 1s. How can I do that? I was trying randi([-1:2:1],30,1) but that gives me zeros too and I don't want zeros, only -1 and 1. Thanks

 Réponse acceptée

John Petersen
John Petersen le 5 Juil 2012

1 vote

x = 2*round(rand(30,1)) - 1;

3 commentaires

Isabel
Isabel le 5 Juil 2012
This gives me a column of zeros only. Thanks anyways
John Petersen
John Petersen le 5 Juil 2012
Modifié(e) : John Petersen le 5 Juil 2012
No it doesn't. Maybe you didn't grab the whole line?
Isabel
Isabel le 5 Juil 2012
Sorry, it does work, my bad. I think I din't copy the whole formula or something. Thank you very much for your answer!

Connectez-vous pour commenter.

Plus de réponses (2)

Andrei Bobrov
Andrei Bobrov le 5 Juil 2012
Modifié(e) : Andrei Bobrov le 5 Juil 2012

1 vote

eg
A = (rand(5) > .5) + 0;
A(~A) = -1;
or
A = 2*randi([0 1],30,1) - 1;

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!

Translated by