Defining a piecewise function using a list

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}

回答 (1 件)

Walter Roberson
Walter Roberson 2018 年 9 月 12 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeNumerical Integration and Differential Equations についてさらに検索

質問済み:

2018 年 9 月 12 日

回答済み:

2018 年 9 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by