how to random -1 and 1?

59 views (last 30 days)
Tia
Tia on 27 Jul 2013
Commented: Stephen23 on 8 Feb 2023
m=round(2*rand(8)-1)
the output:
m =
1 0 0 1 0 0 0 -1
1 1 0 0 1 1 0 -1
0 1 -1 0 0 0 1 1
1 0 0 1 0 0 1 0
0 0 -1 1 1 -1 1 1
-1 -1 -1 1 -1 0 0 -1
-1 -1 1 -1 0 -1 1 0
0 -1 0 1 1 0 0 0
but i don't want zero's output. can anyone help me clear this? thanks

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 27 Jul 2013
Edited: Azzi Abdelmalek on 27 Jul 2013
m=randi(2,8)-1
m(~m)=-1
%or
m=randi([-1 ,1],8)
m(~m)=-1
%or
m=fix(rand(8)+0.5)
m(~m)=-1
  3 Comments
Tia
Tia on 27 Jul 2013
ok, thank you for your advice

Sign in to comment.

More Answers (3)

Andrei Bobrov
Andrei Bobrov on 27 Jul 2013
Edited: Andrei Bobrov on 27 Jul 2013
2*randi([0 1],8)-1
or
2*(rand(8)>.5) - 1
  2 Comments
Ahteshamul Haq
Ahteshamul Haq on 17 Apr 2019
Is the probabilty of getting -1 and +1 is 0.5. If not, kindly suggest a way to get it.
James Tursa
James Tursa on 17 Apr 2019
Yes, the probability of getting -1 and +1 is 0.5

Sign in to comment.


Mendi
Mendi on 19 Aug 2020
randsample([-1, 1],8,true)

Francesco Sgromo
Francesco Sgromo on 8 Feb 2023
Edited: Francesco Sgromo on 8 Feb 2023
-1^(randi(2))
  1 Comment
Stephen23
Stephen23 on 8 Feb 2023
(-1).^randi(2,8,8)
ans = 8×8
1 1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1 -1 1 1 -1 1 -1 1 1 -1 -1 -1 1 -1 1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 -1 -1 1 1 1 -1 1 -1 1 1 1 -1 -1 -1 -1 1

Sign in to comment.

Categories

Find more on Random Number Generation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!