这个可以调用我的函数[x,y]=crosspt(x1,y1,x2,y2)
这里x1,y1,x2,y2分别是两条曲线的横纵坐标值。得到的x,y分别是交点坐标。
你的例子:
clear; clc;n1=150; % core refractive index
n2=148; % clading refractive index
a1=415; % core radius=415microm
a2=625; % cladding radius=625microm
nama=155; % imput wavelength=155microm
pfcri=sqrt(n1^2-n2^2);
V1=2pi/nama;
V=V1a1pfcri;
ncoeff=(n2:0001:n1)';
b=(ncoeff^2-n2^2)/(pfcri^2);
x=Vsqrt(1-b);
x1=Vsqrt(b);
y_0=besselj(0,x); %零阶
y_1=besselj(1,x); %一阶
y_01=besselk(0,x1); %零阶
y_11=besselk(1,x1); %一阶
yl=xy_0/y_1;
yr=x1y_01/y_11;
axis([n2,n1,-50,50]);
plot(ncoeff,yl,'r',ncoeff,yr,'b');grid on;
xlabel('core effective refractive index');
% 寻找数值上的交点
[x,y]=crosspt(ncoeff,yl,ncoeff,yr);
text(x,y,'o','HorizontalAlignment','center','color','k')
text(x,y,[' ','(',num2str(x),',',num2str(y),')'],'color','k')
最后得到的结果:
当然也可以求出多个交点,下面给出我的例子:
clcclear
x=0:001:5pi;
y1=8sin(x);
y2=6cos(x);
plot(x,y1,'r--',x,y2,'b-')
[xx,yy]=crosspt(x,y1,x,y2);
for i=1:length(xx)
text(xx(i),yy(i),'o','HorizontalAlignment','center','color','k')
text(xx(i),yy(i),[' ','(',num2str(xx(i)),',',num2str(yy(i)),')'],'color','k')
end
五个点都求出来了。
记住把我的crossptp文件放在你的当前文件夹里面
以上就是关于请问如何在下面的Matlab程序中做插值处理,得到图中红线和蓝线交点位置的坐标呢 请熟悉的Matlab高手指点全部的内容,包括:请问如何在下面的Matlab程序中做插值处理,得到图中红线和蓝线交点位置的坐标呢 请熟悉的Matlab高手指点、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)