MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Binary Vector Manipulation



Hi Tara,

if I understand right, you want a "numerical" Or:

numOr[x1_,x2_]:=If[x1==1||x2==1,1,0];SetAttributes[numOr,Listable];

b=numOr[a,b]

Now we will zero a random position in b until we have a ratio of 50/50:

n=Length[b];

While[0.5<(Plus@@b)/n, b[[RandomInteger[{1,n}]]]=0]

hope this helps, Daniel



Tara.Ann.Lorenz at gmail.com wrote:

> I am need of assistance programming the following scenario:

> 

> I have two vectors composed of 0's and 1's.  Vector "A" has 5% 1's

> (and 95% 0's) while Vector "B" has 50% 1's and 50% 0's.

> 

> First, I would like to change Vector B to have a "1" in every place

> that Vector A also has a "1" (in other words, I will then have more

> than 50% 1's in Vector B once this step is completed).

> 

> Then, I would like to *randomly* return Vector B back to a 50/50

> distribution of 1's and 0's.

> 

> I greatly appreciate any proposed programming methods.

> 

> Thank you,

> Tara

> 

> 

> 




  • Prev by Date: Mathematical expectation
  • Next by Date: Re: Monitor bug or feature
  • Previous by thread: Binary Vector Manipulation
  • Next by thread: Re: Binary Vector Manipulation