Change the zeros to ones and the ones to zeros.
100 views (last 30 days)
Show older comments
I don´t know why my code to change the ones for zeros and the zeros to ones doesn´t work.
This is my code:
V = [ 1, 1, 1, 1, 0, 1, 0, 1]
V(V==0) = 1;
V(V==1) = 0;
C1 = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, V(2:8)]
0 Comments
Accepted Answer
Steven Lord
on 25 Feb 2021
Let's look at V after the second and third steps:
V = [ 1, 1, 1, 1, 0, 1, 0, 1]
V(V==0) = 1
V(V==1) = 0
You want to record which elements of V were equal to 1 before replacing all the 0 values with 1.
V = [ 1, 1, 1, 1, 0, 1, 0, 1];
previousOnes = V == 1;
V(V == 0) = 1;
V(previousOnes) = 0
Or since you want to change 0 to 1 and vice versa, just subtract V from 1.
V = [ 1, 1, 1, 1, 0, 1, 0, 1];
newV = 1-V
Or use the not operator. Depending on what you want to do with it afterward you may need to convert it back to double by calling double() on it.
V = [ 1, 1, 1, 1, 0, 1, 0, 1]
newV2 = ~V
newV2D = double(newV2)
See Also
Categories
Find more on Migrate GUIDE Apps 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!