Elpezmuerto
Elpezmuerto

Reputation: 5591

Create inverse logical array in Matlab

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

Answers (2)

gnovice
gnovice

Reputation: 125874

Just use the logical NOT operator:

isOcean = ~isLand;

Easy-peasy lemon squeezy! ;)

Upvotes: 11

user85109
user85109

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

Related Questions