Clear Filters
Clear Filters

Compute a new vector dependent on two others and a random probability

1 view (last 30 days)
Hi everyone, I have the following problem which I can not figure out by myself. I have two column vectors (x &y: 200x1 each). Each entry is giving me percentages (0.2 0.4 or 0.6). I want to compute two vectors (z,k) based on the old vectors percentages. So if either x or y == 0.2, I want z or k to be 1 in 0.2% of occurences in the old vector and 0 in all the other cases. It does not matter whether z or k = 1.
Here is what I have tried so far:
if matrix(:,1)==0.2|matrix(:,2)==0.2
% matrix(:,5)==1
matrix(:,6)==1
end
Here I only wanted to try to find out the occurences where 0.2 is either in column 1 or 2 and then randomly delete the 1 entrys from column 5 and 6. But this already did not work :(.
Please help me!
  3 Comments
KSSV
KSSV on 14 Oct 2016
Are you facing a problem to find out where 0.2 is? As the numbers are floating try abs(matrix(:,1) -0.2)<eps where eps is a small number.

Sign in to comment.

Answers (1)

Massimo Zanetti
Massimo Zanetti on 14 Oct 2016
By doing
x==0.2 | y==0.2
you are testing that ALL theelements of x or y equal 0.2. Is that really what you want?
  2 Comments
Laurie Gerstenberger
Laurie Gerstenberger on 14 Oct 2016
I solved that now and now I have the position where either on of them is 0.2. Is there any way to write 1 randomly in either vector z or y randonly and only in 20% of the occurences of the positions?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!