MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply TodayTo resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Asked by Javier on 9 May 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!!

*No products are associated with this question.*

Answer by Stephan M. H. on 9 May 2013

Edited by Stephan M. H. on 9 May 2013

Accepted answer

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

## 0 Comments