MATLAB如何在一​个文件中调用另一个文​件的输出结果。

22 views (last 30 days)
kjergbrn
kjergbrn on 23 May 2023
Answered: bvvhps on 23 May 2023
第一个程序
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

bvvhps
bvvhps on 23 May 2023
在第一个程序末尾:
save('XXXX.mat', 'neff10');
在第二个程序开头:
load('XXXX.mat');
neff1 = neff10;

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!