Defining a piecewise function using a list

13 Ansichten (letzte 30 Tage)
Noureddine Toumi
Noureddine Toumi am 12 Sep. 2018
Beantwortet: Walter Roberson am 12 Sep. 2018
I would like to define a piecewise function by providing two lists and using a for loop eg:
xlist = {1, 2, 3, 4}
ylist = {4, 5, 6}
f(x):= { ylist[1] if x in [ xlist[1],xlist[2] ]; ylist[2] if x in [ xlist[2],xlist[3] ]; ylist[3] if x in [ xlist[3],xlist[4] ]; 0 otherwise}

Antworten (1)

Walter Roberson
Walter Roberson am 12 Sep. 2018
t = num2cell(piecewise([reshape([x >= xlist(1:end-1) & x < xlist(2:end)], [], 1), ylist(:); sym('true'), 0].'));
f = piecewise(t{:});
I had to make assumptions about whether you wanted your ranges to be semi-open or semi-closed

Kategorien

Mehr zu Numerical Integration and Differential Equations finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by