在Matlab中绘制一个在不同域上表现不同的函数

时间:2014-10-19 18:11:40

标签: matlab

如果我有一个定义为

的函数f(x)
f(x) = x^2; x>0 & x<=1
     = x^3; x>1 & x<2
     = 2*x; elsewhere

如何在同一图表中在Matlab中绘制这个?

2 个答案:

答案 0 :(得分:2)

您可以定义一组x值(例如4 <= x <= 4之间),然后将2*x应用于此时间间隔内的每个值。之后,搜索其他函数区间内的x个值,并将这些值设置为这些区间内的值。因此,尝试这样的事情:

x = -4 : 0.001 : 4;
y = 2*x;
y(x > 0 & x <= 1) = x(x > 0 & x <= 1).^2;
y(x > 1 & x < 2) = x(x > 1 & x < 2).^3;
plot(x,y);
grid;

这就是我得到的:

enter image description here

答案 1 :(得分:2)

我会在没有fplot的情况下执行此操作:

x = 0:0.1:3;
x1 = x(x>0 & x<=1);
x2 = x(x>1 & x<2);
x3 = x(x>2);
y1 = (x1).^2;
y2 = (x2).^3;
y3 = 2*(x3);
plot([x1 x2 x3], [y1 y2 y3])

enter image description here