我想绘制以下数学函数:
我尝试使用以下代码:
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])
为什么它给我一个空窗口?
答案 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;