How to replace some values in an array with zero and some with values from another array?
32 views (last 30 days)
Show older comments
A = [2 4 0 0 5 3 0 2 1 0 2];
B = [1 1 0 1];
I want to replace numbers in A greater than 0 with 0, and numbers in A which is 0 by the numbers in B in the order they are.
The new vector i want is C = [0 0 1 1 0 0 0 0 0 1 0];
I tried to use if statements inside a for loop:
for i = 1:length(A)
for j=1:length(B)
if A==0
C(i)=0;
else
C(i)=B(j);
end;
end;
end;
What happens is that j in B(j) is constant 4 (giving a value of B(4)=1 for all the B(j), and results in a C = [0 0 1 1 0 0 1 0 0 1 0])
0 Comments
Accepted Answer
More Answers (1)
Andrei Bobrov
on 19 Mar 2019
A = [2 4 0 0 5 3 0 2 1 0 2];
B = [1 1 0 1];
A1 = ~A;
C = double(A1);
C(A1) = B;
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!