次のような区分レベル関数を生成する最も簡単な方法は何ですか

マトリックスの各レベルの高さ (y 値) と長さ (水平) を知っているとします。
>> C=[2,4,1,-3;2,1.5,0.7,2.8]
C =
2.0000 4.0000 1.0000 -3.0000
2.0000 1.5000 0.7000 2.8000
つまり、最初の行はレベルレベルを示し、2 番目の行は水平方向の長さです。
また、レベル間の補間が必要です。
私はこのツールを使用します。たとえば、次の一連の区分関数があるとします。
x < -5, y = 2
-5 <= x < 0, y = sin(x)
0 <= x < 2, y = x.^2
2 <= x < 3, y = 6
3 <= x, y = inf
したがって、任意の変数 x の関数として、次のように呼び出すだけです。
y = piecewise_eval(x,[-5 0 2 3],{2,'sin(x)','x.^2',6,inf});
使用する
stairs([0 cumsum(C(2,:))], [C(1,:) C(1,end)]);
間の値を変更したり、別の方法でプロットしたい場合は、次の方法で座標を取得できます
[x, y] = stairs([0 cumsum(C(2,:))], [C(1,:) C(1,end)]);