MATLAB Function Reference  if

Conditionally execute statements

Syntax

• ```if ```expression
```    ```statements
```end
```

Description

MATLAB evaluates the `expression` and, if the evaluation yields logical `1` (`true`) or a nonzero result, executes one or more MATLAB commands denoted here as `statements`.

When you are nesting `if`s, each `if` must be paired with a matching `end`.

When using `elseif` and/or `else` within an `if` statement, the general form of the statement is

• ```if ```expression1
```    ```statements1
```elseif ```expression2
```    ```statements2
```else
```statements3
```end
```

Arguments

expression

`expression` is a MATLAB expression, usually consisting of variables or smaller expressions joined by relational operators `(`e.g., `count < limit),` or logical functions (e.g., `isreal(A)`).

Simple expressions can be combined by logical operators (`&`,`|`,`~`) into compound expressions such as the following. MATLAB evaluates compound expressions from left to right, adhering to operator precedence rules.

• ```(count < limit) & ((height - offset) >= 0)
```

statements

`statements` is one or more MATLAB statements to be executed only if the `expression` is `true` or nonzero.

Remarks

Nonscalar Expressions

If the evaluated `expression` yields a nonscalar value, then every element of this value must be true or nonzero for the entire expression to be considered true. For example, the statement `if` `(A < B)` is true only if each element of matrix `A` is less than its corresponding element in matrix `B`. See Example 2, below.

Partial Evaluation of the expression Argument

Within the context of an `if` or `while` expression, MATLAB does not necessarily evaluate all parts of a logical expression. In some cases it is possible, and often advantageous, to determine whether an expression is true or false through only partial evaluation.

For example, if `A` equals zero in statement 1 below, then the expression evaluates to `false`, regardless of the value of `B`. In this case, there is no need to evaluate `B` and MATLAB does not do so. In statement 2, if `A` is nonzero, then the expression is true, regardless of `B`. Again, MATLAB does not evaluate the latter part of the expression.

• ```1)   if (A & B)               2)   if (A | B)
```

You can use this property to your advantage to cause MATLAB to evaluate a part of an expression only if a preceding part evaluates to the desired state. Here are some examples.

• ```while (b ~= 0) & (a/b > 18.5)
if exist('myfun.m') & (myfun(x) >= y)
if iscell(A) & all(cellfun('isreal', A))
```

Examples

Example 1 - Simple if Statement

In this example, if both of the conditions are satisfied, then the student passes the course.

• ```if ((attendance >= 0.90) & (grade_average >= 60))
pass = 1;
end;
```

Example 2 - Nonscalar Expression

Given matrices `A` and `B`,

• ```A =                 B =
1     0            1     1
2     3            3     4
```
 Expression Evaluates As Because `A < B` `false` `A(1,1)` is not less than `B(1,1)`. `A < (B + 1)` `true` Every element of `A` is less than that same element of `B` with `1` added. `A & B` `false` `A(1,2) & B(1,2)` is false. `B < 5` `true` Every element of `B` is less than `5`.
```

```

See Also

`else`, `elseif`, `end`, `for`, `while`, `switch`, `break`, `return`, relational operators, logical operators (elementwise and short-circuit),

© 1994-2005 The MathWorks, Inc.