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不知道解决方案,希望能有效解决,谢谢,英语来自机器翻译,请见谅。
exdqitrt1#
您的选择方法(乘以布尔值)对log(0)并不适用,因为-Inf为无穷大乘以零得到NaN(不是数字),这会污染方程的其余部分,无法绘制。相反,一种方法是在应用函数之前执行选择,并连接结果:
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]);
1条答案
按热度按时间exdqitrt1#
您的选择方法(乘以布尔值)对
log(0)
并不适用,因为-Inf
为无穷大乘以零得到NaN
(不是数字),这会污染方程的其余部分,无法绘制。相反,一种方法是在应用函数之前执行选择,并连接结果: