Filling vector with a condition.

조회 수: 19 (최근 30일)
Javier
Javier 2013년 5월 9일
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!!

채택된 답변

Stephan M. H.
Stephan M. H. 2013년 5월 9일
편집: Stephan M. H. 2013년 5월 9일
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
Javier
Javier 2013년 5월 9일
Gracias totales!! Thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

John Doe
John Doe 2013년 5월 9일
편집: John Doe 2013년 5월 9일
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

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by