Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

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

Tia

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

Azzi Abdelmalek
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

Andrei Bobrov

Contact us