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

1 次查看(过去 30 天)
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 个评论
KSSV
KSSV 2016-10-14
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.

请先登录,再进行评论。

回答(1 个)

Massimo Zanetti
Massimo Zanetti 2016-10-14
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 个评论
Laurie Gerstenberger
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?

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by