Defining a piecewise function using a list
Afficher commentaires plus anciens
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}
Réponses (1)
Walter Roberson
le 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
Catégories
En savoir plus sur Numerical Integration and Differential Equations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!