MATLAB Function Reference |
Conditionally execute statements
Syntax
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
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.
statements
statements
is one or more MATLAB statements to be executed only if the expression
is true
or nonzero.
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.
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))
Example 1 - Simple if Statement
In this example, if both of the conditions are satisfied, then the student passes the course.
Example 2 - Nonscalar Expression
A = B = 1 0 1 1 2 3 3 4
See Also
else
, elseif
, end
, for
, while
, switch
, break
, return
, relational operators, logical operators (elementwise and short-circuit),
i | ifft |
© 1994-2005 The MathWorks, Inc.