MATLAB Answers

Tia

how to random -1 and 1?

Asked by Tia
on 27 Jul 2013
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

  0 Comments

Products

No products are associated with this question.

2 Answers

Answer by Azzi Abdelmalek
on 27 Jul 2013
Edited by Azzi Abdelmalek
on 27 Jul 2013
 Accepted answer
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

kjetil87
on 27 Jul 2013

you should be carefull about method 2 if you want it to be actually random, here there is a 2/3 chance of -1 , and 1/3 of +1.

Tia
on 27 Jul 2013

ok, thank you for your advice


Answer by Andrei Bobrov
on 27 Jul 2013
Edited by Andrei Bobrov
on 27 Jul 2013
2*randi([0 1],8)-1

or

2*(rand(8)>.5) - 1

  0 Comments


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today