繁体   English   中英

在Matlab中有多步逐点函数化?

[英]Many step picewise function in Matlab?

生成分段级别函数的最简单方法是什么,如下所示

在此处输入图片说明

假设我知道矩阵中每个级别的高度(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

即第一行表示水平,第二行表示水平长度。

我也想在级别之间进行一些插值。

我使用这个工具 例如,给定这组分段函数:

 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)]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM