Matlab-绘制分段函数时部分图像丢失

问题描述 投票:0回答:1
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]);

enter image description here

sin图像单独绘制时是完整的,其他函数叠加时图像是完整的。但是叠加log(x+a)时,图像会在x=a处破损

这是我的目标图像的功能。是不是我的实现方式不对?请改正。 enter image description here 刚接触MATLAB,不知道解决办法。希望能得到有效解决。谢谢。英语来自机器翻译,请见谅

matlab matlab-figure
1个回答
0
投票

您的选择方法,乘以布尔值,不能很好地与

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]);
© www.soinside.com 2019 - 2024. All rights reserved.