Conditionally defined expression or function (2024)

Conditionally defined expression or function

collapse all in page

Syntax

pw = piecewise(cond1,val1,cond2,val2,...)

pw = piecewise(cond1,val1,cond2,val2,...,otherwiseVal)

Description

example

pw = piecewise(cond1,val1,cond2,val2,...) returns the piecewise expression or function pw whose value is val1 when condition cond1 is true, is val2 when cond2 is true, and so on. If no condition is true, the value of pw is NaN.

example

pw = piecewise(cond1,val1,cond2,val2,...,otherwiseVal) returns the piecewise expression or function pw that has the value otherwiseVal if no condition is true.

Examples

collapse all

Define and Evaluate Piecewise Expression

Open Live Script

Define the following piecewise expression by using piecewise.

y={-1x<01x>0

syms xy = piecewise(x < 0,-1,x > 0,1)
y =

{-1ifx<01if0<x

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 =(-1NaN1)

Define Piecewise Function

Open Live Script

Define the following function symbolically.

y(x)={-1x<01x>0

syms y(x)y(x) = piecewise(x < 0,-1,x > 0,1)
y(x) =

{-1ifx<01if0<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 =(-1NaN1)

Set Value When No Condition Is True

Open Live Script

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

y={-2x<-20-2<x<01otherwise.

syms y(x)y(x) = piecewise(x < -2,-2,(-2 < x) & (x < 0),0,1)
y(x) =

{-2ifx<-20ifx(-2,0)1otherwise

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 =(-21011)

Plot Piecewise Expression

Open Live Script

Plot the following piecewise expression by using fplot.

y={-2x<-2x-2<x<22x>2.

syms xy = piecewise(x < -2,-2,-2 < x < 2,x,x > 2,2);fplot(y)

Conditionally defined expression or function (1)

Assumptions and Piecewise Expressions

Open Live Script

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 xassume(x > 0)pw = piecewise(x < 0,-1,x > 0,1)
pw =1

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 =1

Clear the assumption on x for further computations.

assume(x,'clear')

Differentiate, Integrate, and Find Limits of Piecewise Expression

Open Live Script

Differentiate, integrate, and find limits of a piecewise expression by using diff, int, and limit respectively.

Differentiate the following piecewise expression by using diff.

y={1/xx<-1sin(x)/xx-1

syms xy = piecewise(x < -1,1/x,x >= -1,sin(x)/x);diffy = diff(y,x)
diffy =

{-1x2ifx<-1cos(x)x-sin(x)x2if-1<x

Integrate y by using int.

inty = int(y,x)
inty =

{log(x)ifx<-1sinint(x)if-1x

Find the limits of y at 0 by using limit.

limit(y,x,0)
ans =1

Find the right- and left-sided limits of y at -1. For details, see limit.

limit(y,x,-1,'right')
ans =sin(1)
limit(y,x,-1,'left')
ans =-1

Elementary Operations on Piecewise Expressions

Open Live Script

Add, subtract, divide, and multiply two piecewise expressions. The resulting piecewise expression is only defined where the initial piecewise expressions are defined.

syms xpw1 = piecewise(x < -1,-1,x >= -1,1);pw2 = piecewise(x < 0,-2,x >= 0,2);add = pw1+pw2
add =

{-3ifx<-1-1ifx[-1,0)3if0x

sub = pw1-pw2
sub =

{1ifx<-13ifx[-1,0)-1if0x

mul = pw1*pw2
mul =

{2ifx<-1-2ifx[-1,0)2if0x

div = pw1/pw2
div =

{12ifx<-1-12ifx[-1,0)12if0x

Modify or Extend Piecewise Expression

Open Live Script

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 xpw = piecewise(x < 2,-1,x > 0,1);pw = subs(pw,x < 2,x < 0)
pw =

{-1ifx<01if0<x

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 =

{1xif5<x-1ifx<01if0<x

Input Arguments

collapse all

condCondition
symbolic condition | symbolic variable

Condition, specified as a symbolic condition or variable. A symbolic variable represents an unknown condition.

Example: x > 2

valValue 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.

otherwiseValValue 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

collapse all

pw — Piecewise expression or function
symbolic expression | symbolic function

Piecewise expression or function, returned as a symbolic expression or function. The value of pw is the value val of the first condition cond that is true. To find the value of pw, use subs to substitute for variables in pw.

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.

Conditionally defined expression or function (2)

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:

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
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

Contact your local office

Conditionally defined expression or function (2024)
Top Articles
Latest Posts
Article information

Author: Fr. Dewey Fisher

Last Updated:

Views: 6424

Rating: 4.1 / 5 (62 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Fr. Dewey Fisher

Birthday: 1993-03-26

Address: 917 Hyun Views, Rogahnmouth, KY 91013-8827

Phone: +5938540192553

Job: Administration Developer

Hobby: Embroidery, Horseback riding, Juggling, Urban exploration, Skiing, Cycling, Handball

Introduction: My name is Fr. Dewey Fisher, I am a powerful, open, faithful, combative, spotless, faithful, fair person who loves writing and wants to share my knowledge and understanding with you.