Reputation: 5591
I have a logical array, isLand, that is true if the index is over land and false if the index is not over land, like the ocean. How can I easily create another logical array, isOcean, which is the inverse of isLand. All the ones in isLand will be zeros in isOcean and vice versa.
I know I can do this using a for loop but I feel there is a much better way.
Upvotes: 4
Views: 17589
Reputation: 125874
Just use the logical NOT operator:
isOcean = ~isLand;
Easy-peasy lemon squeezy! ;)
Upvotes: 11
Reputation:
As gnovice tells you, ~ (the not operator) is the right answer of course, but you can also use
isOcean = isLand == 0;
This should work too:
isOcean = xor(1,isLand);
There are always several ways to solve any problem in MATLAB.
Upvotes: 4