matlab怎样自动标出交点坐标

如题所述

应用于两条曲线相差较大时
例如题目: 已知函数为y=exp(-0.5*x)*cos(x);
取x在[0,2π] 内1000 个点时的 y 值,同时对数据 y 叠加一个正弦干扰信号得到 y1。画出(x,y)(x,y1)图形并对交点标注。
matlab代码如下:
clear
x=linspace(0,2*pi,1000);
y=exp(-0.5*x).*cos(x);
yy=5*sin(x);
y1=yy+y;%叠加正弦干扰信号得到y1
k=find(abs(y1-y)<=0.02);%找出交点
x2=x(k);
y2=exp(-0.5*x2).*cos(x2);

%画出y和y1图形,并找出交点标注
figure
plot(x,y,'b',x,y1,'r',x2,y2,'*')
axis([0,2*pi,-6,6])%坐标轴控制
grid on %画出网格线
xlabel('x')
ylabel('y')
legend('y','y1','交点')
第一种方法是通过find函数设置合适的阈值(如这里的0.02)找到两条曲线对应值很小的点的x值,再将其代入到函数里得到y值,形成一个新的对应数组。再用plot函数将两条曲线和交点画出来。
温馨提示:答案为网友推荐,仅供参考
相似回答