3 views (last 30 days)

Show older comments

Hello, I am trying to vectorize the following simple code

if true

A=[-1;3;0;-4];

B=zeros(size(A));

for i=1:4

if A(i)<0

B(i)=-(A(i));

elseif A(i)==0

B(i)=1;

else

B(i)=A(i);

end

B=B(:);

end

end

Please, how do I write the above code in such a way that there is no for loop, and still it works?

Star Strider
on 7 Jan 2018

Try this:

A=[-1;3;-2;-4];

B = A;

B(A<0) = -A(A<0)

Star Strider
on 7 Jan 2018

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

Start Hunting!