Filling vector with a condition.

28 vues (au cours des 30 derniers jours)
Javier
Javier le 9 Mai 2013
Hi.
I have two vectors A and B of the same length
I wan´t to create a new vector containing the same numbers of B, but only if the same element in A was a number>0, if not, i want to put a zero in that element.
How can i do this? Could you help me?
Thank you in advance!!

Réponse acceptée

Stephan M. H.
Stephan M. H. le 9 Mai 2013
Modifié(e) : Stephan M. H. le 9 Mai 2013
Hi Javier,
as far as I understood your question you want to create a new vector with
for i=1:lenght(A)
if A(i)>0
C(i) = B(i)
end
end
This could be done in with the for loop above, but the fastest way should be via logical indexing.
C = zeros(size(A));
flag_a = A >0 % is logical 1 where elements are bigger zero
C(flag_a) = B(flag_a);
best, Stephan
  1 commentaire
Javier
Javier le 9 Mai 2013
Gracias totales!! Thank you!

Connectez-vous pour commenter.

Plus de réponses (1)

John Doe
John Doe le 9 Mai 2013
Modifié(e) : John Doe le 9 Mai 2013
Like this?
A = [1 2 -3 0 4 0 -5 0 6];
B = 10:19;
C = zeros(1,length(A));
C(A>0) = B(A>0)
C =
10 11 0 0 14 0 0 0 18
  1 commentaire
Javier
Javier le 9 Mai 2013
Thank you!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by