Matlab没有绘制函数区间

时间:2016-12-10 19:09:45

标签: matlab

我想绘制以下数学函数:

function

我尝试使用以下代码:

x= -3:0.1:3;
x1 = x(x>2 & x<2);
x2 = x(x==2)
y1 = (x1)+1
y2 = 2
plot([x1 x2], [y1 y2])

为什么它给我一个空窗口?

1 个答案:

答案 0 :(得分:0)

以下条件不可能是真的,因为任何数字都不能同时大于和小于2

x > 2 & x < 2

因此,x1是一个空向量而x2只是2,因此您的绘图命令只会在(2,2)处产生一个点。

您想要使用逻辑|)代替

x1 = x(x > 2 | x < 2);

另外一个更好的方法来绘制这个将是以下

y = x + 1;          % Set all values to x + 1
y(x == 2) = 2;      % Replace those that meet your criteria

plot(x, y)

作为旁注,使用==来比较浮点数通常是个坏主意。您应该使用eps来检查两个浮点数是否相等:

y(abs(x - 2) < eps) = 2;