tags:

views:

60

answers:

2

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.

+5  A: 

Just use the logical NOT operator:

isOcean = ~isLand;

Easy-peasy lemon squeezy! ;)

gnovice
Great answer, I was going to use the `find` function that this is much better
Elpezmuerto
+2  A: 

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.

woodchips

related questions