# Thread: Matlab help with Vectors

1. ## Matlab help with Vectors

Hi,

I need some help with vectors in Matlab.
I have a vector A with 100 elements. From previous calculations, 80 of the elements are 1 and the rest are zero.
But I need to make the vector with half of its element "zero" and the remaining half "one" by randomly turning some one's to zero.

So I need to turn 30 (out of 80 currently in the vector) 1's into zero and I have to do it randomly. Can anyone help me with this problem?

Thanks,
John.

2. Originally Posted by john2010
Hi,

I need some help with vectors in Matlab.
I have a vector A with 100 elements. From previous calculations, 80 of the elements are 1 and the rest are zero.
But I need to make the vector with half of its element "zero" and the remaining half "one" by randomly turning some one's to zero.

So I need to turn 30 (out of 80 currently in the vector) 1's into zero and I have to do it randomly. Can anyone help me with this problem?

Thanks,
John.
Try (the untested code):

Code:
B=find(A == 1)
C=zeros(size(A));
x=randperm(length(B));
idx=x(1:50);
C(idx)=1;
A=C;
CB

3. Originally Posted by CaptainBlack
Try (the untested code):

Code:
B=find(A == 1)
C=zeros(size(A));
x=randperm(length(B));
idx=x(1:50);
C(idx)=1;
A=C;
CB
Thanks for the reply. I tested the code and it gives me 50 zero's and 50 one's but the problem is all the 1's bits towards the end of the vector are deleted (instead of being random deletion). I hope you can help me with this. Thanks a lot.

4. Originally Posted by john2010
Thanks for the reply. I tested the code and it gives me 50 zero's and 50 one's but the problem is all the 1's bits towards the end of the vector are deleted (instead of being random deletion). I hope you can help me with this. Thanks a lot.
Code:
B=find(A == 1)
C=zeros(size(A));
x=randperm(length(B));
idx=B(x(1:50));
C(idx)=1;
A=C;