Filter löschen
Filter löschen

Filling vector with a condition.

16 Ansichten (letzte 30 Tage)
Javier
Javier am 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!!

Akzeptierte Antwort

Stephan M. H.
Stephan M. H. am 9 Mai 2013
Bearbeitet: Stephan M. H. am 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

Weitere Antworten (1)

John Doe
John Doe am 9 Mai 2013
Bearbeitet: John Doe am 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

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by