Guilin Sun
Ansys Employee
Di = linspace(6,10,5);#定义Di

错了!你只需要定义一个维度,为什么要定义三个维度呢?主要问题是你对这个

d = [0; 40e-9; 15e-9; 40e-9; 0]; # air/SiO2/Si/SiO2/air

理解错了。每个数是每层的厚度,你看看说明。

d = [0; 40e-9; Di(n); 40e-9; 0]; # air/SiO2/Si/SiO2/air

这句话显然说明Di(n)是一维数组,但是你却定义为3维。

你只需改变某一层的厚度,用一维函数D表示,给D赋值。我专门说“设为Di和给出一个线阵数据”,看来你没有理解这句话。

哪一句出错,你要修改它,看看要求是什么,为什么出错,这是一般写程序的基本方法。

Plot只能做曲线,不同层厚度你可以画多条曲线,也可以用image: image - Script command

你可能需要时间学习了解脚本工作原理。

解析结果可以给出指定波长范围的数值。不清楚为什么要给两个波段分别计算,幸亏这种方法计算快,否则你可就浪费太多时间了。难道f1范围的结果不能从f2中得到吗?

可能需要花点时间想一想怎样更有效地仿真。

网上有很多脚本使用的视频,请花时间看一下吧。