MATLAB如何在一个文件中调用另一个文件的输出结果。
Show older comments
第一个程序
syms neff
H=input('请输入芯层厚度= ');
lanmuda=input('请输入波长= ');
n1=input('请输入上层折射率= ');
n2=input('请输入中间层折射率= ');
n3=input('请输入下层折射率= ');
N=input('请输入模数= ');
k0=2*pi/lanmuda;
r1=sqrt(neff^2-n1^2)*k0;
r2=sqrt(n2^2-neff^2)*k0;
r3=sqrt(neff^2-n3^2)*k0;
for i=0:N
q=i;
fun=r2*H-atan(r1/r2)-atan(r3/r2)-q*pi;
eval(['neff1', num2str(i), '=solve(fun==0,neff);']);
end
for i = 0 : N
eval(['neff1',num2str(i)]);
end
第二个
global syms neff
w=input('请输入脊宽:');
lanmuda=input('请输入波长:');
M=input('请输入模数= ');
k0=2*pi/lanmuda;
r1=sqrt(neff^2-neff1^2)*k0;
r2=sqrt(neff2^2-neff^2)*k0;
r3=sqrt(neff^2-neff3^2)*k0;
for i=0:M
q=i;
fun=r2*w-atan(r1/r2)-atan(r3/r2)-q*pi;
eval(['neff', num2str(i), '=solve(fun==0,neff);']);
end
for i = 0 : M
eval(['neff',num2str(i)]);
end
第二个程序需要调用第一个程序的输出neff1,由于第一个程序N的不同,输出结果为neff0,neff1.....neff(N-1).第二个程序和第一个程序中多的波长相等。M与N可等可不等。请问第二个程序怎么写?
Accepted Answer
More Answers (0)
Categories
Find more on Formula Manipulation and Simplification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!