# Logical operators in MATLAB

In this article we see what are the logical operators in matlab and how they work as an example. First of all I remind you that MATLAB is a scripting language emulated by a development environment, it is used for numerical calculation purposes. As a reminder, logical operators allow you to form expressions that will tell your program what to do.
Our article is organized as follows.

## Unary logical operators in MATLAB with examples

### Logical negation (logical NOT) in MATLAB

It is a Boolean algebra unary logical operator and expresses a « state » in terms of conditions.

Example in MATLAB :

```LOGICALVARIABLE = false;

if ~LOGICALVARIABLE
disp("negation of variable is true")
else
disp("negation of variable is false")
end
```

In MATLAB create a new script and run the selection by Editor > Run Selection

Another exemple of logical negation on a matrix in matlab :

```MATRIX = eye(5)
disp(~MATRIX)```

### Operator all in MATLAB- determine if all array elements are nonzero or `true`

Like the title this operator will check among the first array dimension if all array element are non zero and it will return 0 for false or 1 for true.

Example :

```SIMPLEARRAY = [2 1 3]
disp(all(SIMPLEARRAY))

SIMPLEARRAY = [1 1 1]
disp(all(SIMPLEARRAY))

SIMPLEARRAY = [0 0 0]
disp(all(SIMPLEARRAY))

MATRIXARRAY = [2 1 3;1 2 3;3 2 1]
disp(all(MATRIXARRAY))

MATRIXARRAY = [2 0 3;1 0 3;3 0 1]
disp(all(MATRIXARRAY))

MATRIXARRAY = [0 1 3;0 0 3;0 2 1]
disp(all(MATRIXARRAY))```

### Operator any in MATLAB- determine if any array elements are nonzero

Like the operator all, any operator will tests along the first array dimension of an array element and determines if any element is a nonzero number. It will return 0 for false and 1 for true.

You can take the code used before for all operator and replace it with « any » with replace all function :

```SIMPLEARRAY = [2 1 3]
disp(any(SIMPLEARRAY))

SIMPLEARRAY = [1 1 1]
disp(any(SIMPLEARRAY))

SIMPLEARRAY = [0 0 0]
disp(any(SIMPLEARRAY))

MATRIXARRAY = [2 1 3;1 2 3;3 2 1]
disp(any(MATRIXARRAY))

MATRIXARRAY = [2 0 3;1 0 3;3 0 1]
disp(any(MATRIXARRAY))

MATRIXARRAY = [0 1 3;0 0 3;0 2 1]
disp(any(MATRIXARRAY))```

The output of this script will be something like :

```SIMPLEARRAY =

2     1     3

1

SIMPLEARRAY =

1     1     1

1

SIMPLEARRAY =

0     0     0

0

MATRIXARRAY =

2     1     3
1     2     3
3     2     1

1   1   1

MATRIXARRAY =

2     0     3
1     0     3
3     0     1

1   0   1

MATRIXARRAY =

0     1     3
0     0     3
0     2     1

0   1   1

>> ```

## Example of using binary operators in MATLAB

I will show you an example of using binary operators xor / & (and) / | (or) / && / ||. Here we are not exhaustive in relation to all the logical operators that can be binary in MATLAB. However, I think it’s a good base here and covers most use cases.

```VARA = true;
VARB = false;
x = 11;

disp("AND = " + (VARA & VARB))
disp("AND = " + and(VARA,VARB))
disp("OR = " + (VARA | VARB))
disp("OR = " + or(VARA,VARB))
disp("XOR = " + xor(VARA,VARB))
disp("&& usage = " + ((x > 3) && (x < 10)))
disp("|| usage = " + ((x > 3) || (x < 10)))```

Result is :

```AND = false
AND = false
OR = true
OR = true
XOR = true
&& usage = false
|| usage = true
>> ```

## The Ternary Operators in MATLAB : an example

Matlab does not have a ternary operator by default, however you can create your own logical operator in MATLAB.

In this example we create a ternary operator which performs a test on condition and which returns a value if true in arg2 and if false in arg3.

Here is the example :

```VARA = true;
TRUEVALUE = 56;
FALSEVALUE = 54;

x = 11;

ternaryCondition = @(arg1, arg2, arg3)...
xor([false true], arg1) * [arg2; arg3];

disp(ternaryCondition(~VARA, TRUEVALUE, FALSEVALUE));
disp(ternaryCondition(VARA, TRUEVALUE, FALSEVALUE));
disp(ternaryCondition(VARA & true, TRUEVALUE, FALSEVALUE));```

Result will be :

```    54

56

56

>> ```

Retour en haut