I have the following vectors A and B
A= [20 80 -1 0.1 0.05 0.25 0.13 0.12 0.35 21 70 -1 0.1 0.2 0.7 20 77 -1 0.15 0.15 0.7];
B= [1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1];
And I would like to create vector C
C= [20 80 -1 0.1 0.05 0.25 0.13 0 0.12 0.35 21 70 0 0 -1 0.1 0.2 0 0 0.7 20 77 0 0 0 0 -1 0.15 0.15 0.7];
I use
I=find(B==0);
to find the indices of B where there is a 0 and I thought about inserting a zero in A in those indices but I do not know how. I also thought about somehow replacing the 1 in B by values of A but again I do not how to do this.
Is there any way to do this?
Thanks in advance

 Réponse acceptée

Stephen23
Stephen23 le 9 Oct 2018
Modifié(e) : Stephen23 le 9 Oct 2018

0 votes

"I also thought about somehow replacing the 1 in B by values of A"
You can use logical indexing. Here is an example that will work if B is either logical or numeric, and does not overwrite the existing variables:
C = double(B);
C(B==1) = A
If B is numeric and you don't mind overwriting its values, then you just need this:
B(B==1) = A

Plus de réponses (1)

Adam
Adam le 9 Oct 2018

0 votes

B( B == 1 ) = A

Catégories

En savoir plus sur Entering Commands dans Centre d'aide et File Exchange

Produits

Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by