【问题标题】:Many step picewise function in Matlab?Matlab中的多步分段函数?
【发布时间】:2013-06-29 12:28:07
【问题描述】:

生成如下分段函数的最简单方法是什么

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

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

我还想在关卡之间进行一些插值。

【问题讨论】:

    标签: matlab piecewise


    【解决方案1】:

    我使用this tool。例如,给定这组分段函数:

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

    【讨论】:

      【解决方案2】:

      使用

      stairs([0 cumsum(C(2,:))], [C(1,:) C(1,end)]);
      

      如果您想更改两者之间的值或以不同方式绘制它,您可以通过

      获取坐标
      [x, y] = stairs([0 cumsum(C(2,:))], [C(1,:) C(1,end)]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-01
        • 2015-08-23
        相关资源
        最近更新 更多