请问如何在下面的Matlab程序中做插值处理,得到图中红线和蓝线交点位置的坐标呢 请熟悉的Matlab高手指点

请问如何在下面的Matlab程序中做插值处理,得到图中红线和蓝线交点位置的坐标呢 请熟悉的Matlab高手指点,第1张

这个可以调用我的函数[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')

最后得到的结果:

当然也可以求出多个交点,下面给出我的例子:

clc
clear
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高手指点、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10166048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存