如何绘制分段线性函数?

时间:2020-10-26 20:08:30

标签: matlab

根据这些条件,我需要此图的matlab代码,具体取决于r值。 图中有三种不同的情况。第一种情况;如果r值小于r1且大于0,则使用公式L1。 第二种情况;如果r1和r2之间的r值使用公式L2。最后一种情况;如果r值大于r2,则使用公式L3。 你能帮我吗?

    if r < r1
    s=r*(r1/s1);
elseif r1<r & r<r2
    x=tan((r2-r1)/(s2-s1))
    s(r-r1)*x
else
    s=r*(r2/s2)
end

我的图表:

my graph

公式:

formulas

1 个答案:

答案 0 :(得分:2)

您可以使用(plot)绘制给定的图形

plot([0 r1 r2 255], [0 s1 s2 255]);

您不需要斜率或偏移量。所有图都是分段线性函数。 Matlab绘制从一个坐标到下一个坐标的直线。您不需要整个功能。

Matlab是一种数学编程语言。您不必自己创建分段线性函数。通常,您应该避免循环和if条件,以使您的代码更具可读性和性能。您可以使用(interp1

s = interp1([0 r1 r2 255], [0 s1 s2 255], r);

计算两个坐标之间的值。