piecewise
Conditionally defined expression or function
Syntax
Description
Examples
Define and Evaluate Piecewise Expression
Define the following piecewise expression by using piecewise
.
syms x
y = piecewise(x < 0,-1,x > 0,1)
y =
Evaluate y
at -2
, 0
, and 2
by using subs
to substitute for x
. Because y
is undefined at x = 0
, the value is NaN
.
subs(y,x,[-2 0 2])
ans =
Define Piecewise Function
Define the following function symbolically.
syms y(x)
y(x) = piecewise(x < 0,-1,x > 0,1)
y(x) =
Because y(x)
is a symbolic function, you can directly evaluate it for values of x
. Evaluate y(x)
at -2
, 0
, and 2
. Because y(x)
is undefined at x = 0
, the value is NaN
. For details, see Create Symbolic Functions.
y([-2 0 2])
ans =
Set Value When No Condition Is True
Set the value of a piecewise function when no condition is true (called otherwise value) by specifying an additional input argument. If an additional argument is not specified, the default otherwise value of the function is NaN
.
Define the piecewise function
syms y(x)
y(x) = piecewise(x < -2,-2,(-2 < x) & (x < 0),0,1)
y(x) =
Evaluate y(x)
between -3
and 1
by generating values of x
using linspace
. At -2
and 0
, y(x)
evaluates to 1
because the other conditions are not true.
xvalues = linspace(-3,1,5)
xvalues = 1×5
-3 -2 -1 0 1
yvalues = y(xvalues)
yvalues =
Plot Piecewise Expression
Plot the following piecewise expression by using fplot
.
syms x
y = piecewise(x < -2,-2,-2 < x < 2,x,x > 2,2);
fplot(y)
Assumptions and Piecewise Expressions
On creation, a piecewise expression applies existing assumptions. Apply assumptions set after creating the piecewise expression by using simplify
on the expression.
Assume x > 0
. Then define a piecewise expression with the same condition x > 0
. piecewise
automatically applies the assumption to simplify the condition.
syms x
assume(x > 0)
pw = piecewise(x < 0,-1,x > 0,1)
pw =
Clear the assumption on x
for further computations.
assume(x,'clear')
Create a piecewise expression pw
with the condition x > 0
. Then set the assumption that x > 0
. Apply the assumption to pw
by using simplify
.
pw = piecewise(x < 0,-1,x > 0,1); assume(x > 0) pw = simplify(pw)
pw =
Clear the assumption on x
for further computations.
assume(x,'clear')
Differentiate, Integrate, and Find Limits of Piecewise Expression
Differentiate, integrate, and find limits of a piecewise expression by using diff
, int
, and limit
respectively.
Differentiate the following piecewise expression by using diff
.
syms x
y = piecewise(x < -1,1/x,x >= -1,sin(x)/x);
diffy = diff(y,x)
diffy =
Integrate y
by using int
.
inty = int(y,x)
inty =
Find the limits of y
at 0
by using limit
.
limit(y,x,0)
ans =
Find the right- and left-sided limits of y
at -1
. For details, see limit
.
limit(y,x,-1,'right')
ans =
limit(y,x,-1,'left')
ans =
Elementary Operations on Piecewise Expressions
Add, subtract, divide, and multiply two piecewise expressions. The resulting piecewise expression is only defined where the initial piecewise expressions are defined.
syms x
pw1 = piecewise(x < -1,-1,x >= -1,1);
pw2 = piecewise(x < 0,-2,x >= 0,2);
add = pw1+pw2
add =
sub = pw1-pw2
sub =
mul = pw1*pw2
mul =
div = pw1/pw2
div =
Modify or Extend Piecewise Expression
Modify a piecewise expression by replacing part of the expression using subs
. Extend a piecewise expression by specifying the expression as the otherwise value of a new piecewise expression. This action combines the two piecewise expressions. piecewise
does not check for overlapping or conflicting conditions. Instead, like an if-else ladder, piecewise
returns the value for the first true condition.
Change the condition x < 2
in a piecewise expression to x < 0
by using subs
.
syms x
pw = piecewise(x < 2,-1,x > 0,1);
pw = subs(pw,x < 2,x < 0)
pw =
Add the condition x > 5
with the value 1/x
to pw
by creating a new piecewise expression with pw
as the otherwise value.
pw = piecewise(x > 5,1/x,pw)
pw =
Input Arguments
cond
— Condition
symbolic condition | symbolic variable
Condition, specified as a symbolic condition or variable. A symbolic variable represents an unknown condition.
Example: x > 2
val
— Value when condition is satisfied
number | vector | matrix | multidimensional array | symbolic number | symbolic variable | symbolic vector | symbolic matrix | symbolic multidimensional array | symbolic function | symbolic expression
Value when condition is satisfied, specified as a number, vector, matrix, or multidimensional array, or as a symbolic number, variable, vector, matrix, multidimensional array, function, or expression.
otherwiseVal
— Value if no conditions are true
number | vector | matrix | multidimensional array | symbolic number | symbolic variable | symbolic vector | symbolic matrix | symbolic multidimensional array | symbolic function | symbolic expression
Value if no conditions are true, specified as a number, vector, matrix, or
multidimensional array, or as a symbolic number, variable, vector, matrix,
multidimensional array, function, or expression. If
otherwiseVal
is not specified, its value is
NaN
.
Output Arguments
pw
— Piecewise expression or function
symbolic expression | symbolic function
Tips
piecewise
does not check for overlapping or conflicting conditions. A piecewise expression returns the value of the first true condition and disregards any following true expressions. Thus,piecewise
mimics an if-else ladder.
Version History
Introduced in R2016b
See Also
and
| assume
| assumeAlso
| assumptions
| if
| in
| isAlways
| not
| or
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)