Matlab-绘制分段函数时缺少部分图像

dl5txlt9  于 2023-03-13  发布在  Matlab
关注(0)|答案(1)|浏览(285)
x = -10:0.01:10;
y = sin(x.^2).*(x<-1)+log(x+4).*(x>=-1);
plot(x,y);
grid on;
axis([-10,10,-6,6]);

生成的图,在断点处放大:

单独绘制时sin图是完整的,叠加其他函数时也是完整的,但叠加log(x+a)时,曲线会在x=-a处断开。
这是我的目标地块的功能,是不是我的实现方式不对,请更正。
原职能:

刚联系MATLAB不知道解决方案,希望能有效解决,谢谢,英语来自机器翻译,请见谅。

exdqitrt

exdqitrt1#

您的选择方法(乘以布尔值)对log(0)并不适用,因为-Inf为无穷大乘以零得到NaN(不是数字),这会污染方程的其余部分,无法绘制。相反,一种方法是在应用函数之前执行选择,并连接结果:

x = -10:0.01:10;
y = [sin(x(x<-1).^2), log(x(x>=-1)+4)];
plot(x,y);
grid on;
axis([-10,10,-6,6]);

相关问题