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

조회 수: 40 (최근 30일)
kjergbrn
kjergbrn 2023년 5월 23일
답변: bvvhps 2023년 5월 23일
第一个程序
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可等可不等。请问第二个程序怎么写?

채택된 답변

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Formula Manipulation and Simplification에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!