>>  Lectures >>  Matlab 4

 Navigator

## 4.1 Conditionals

When a program makes a decision between 2 or more possible outcomes, it does so by means of a conditional. In its simplest form, a conditional tests whether or not some expression is valid and performs one or more statements depending on the outcome.

if-then clause

If this lecture is too boring then I will fall asleep.

expression: "this lecture is too boring"

statement: "I will fall asleep"

if-then-else clause

If I fall asleep in lecture then I will not understand the homework assignment otherwise (else) I will be able to do the assignment in 10 minutes.

expression: "I fall asleep in lecture"

statement (if the expression holds): "I will not understand the homework assignment"

statement (if the expression fails): "I will be able to do the assignment in 10 minutes"

For a more mathematical example, consider division of 2 numbers, a and b: a/b. For our purposes, when b=0, the result of a/0 is 0 (even though it is in fact infinity). This operation can easily be implemented in an if-then-else clause as follows:

if (b == 0)
0
else
a/b
end
The output of this piece of code is thus a/b if and only if b is not 0.

a=5
b=10
if (b == 0)
0
else
a/b
end

a=2
b=0
if (b == 0)
0
else
a/b
end

The expression (b == 0) is internally evaluated as either True or False, i.e. either it holds and b is in fact 0, or it does not hold and b is anything but 0. Common expressions that evaluate to True or False are shown in Table 4.1.

 Symbol Example greater than or equal to >= (a >= b) greater than > (a > b) equals == (a == b) less than < (a < b) less than or equal to <= (a <= b) not equal to ~= (7 ~= 6)
Table 4.1
Conditionals with more than 2 cases can be built as well:

if (expression1)
statement1
elseif (expression2)
statement2
else
statement3
end
Expressions within the conditional are not limited to only one test, e.g. (b == 0), but they can be made into more complex decisions. Consider adding two matrices, A and B. In order to add any two matrices, their dimensions must match, that is the number of rows in A must equal the number of rows in B, and the number of columns in A must equal the number of colums in B. Let's assume:

Ar = rows in matrix a

Ac = columns in matrix a

Br = rows in matrix b

Bc = columns in matrix b

The corresponding expression to add the two matrices would be:

if ( (Ar == Br) && (Ac == Bc) )