FDTD之常用脚本语言
1.矩阵函数pinch(x,i,j):简单来说就是矩阵的降维。
reflection = getsweepresult("wavelength", "R");
R = -reflection.T;
lambda = reflection.lambda_sweep*1e9;
plot(reflection.source_angle, pinch(R,2,1), pinch(R,2,2), pinch(R,2,3),
"angle of incidence (degrees)","Reflection","Reflection vs angle");
legend('lambda = ' + num2str(lambda(1)),
'lambda = ' + num2str(lambda(2)),
'lambda = ' + num2str(lambda(3)));
如上例,在FDTD监视器数据中,
反射率监视器中的数据是一个四维矩阵,原文件是通过嵌套扫描获取结构反射率随入射角的变化,并获取指定三个波长的数据。这里,x就代表因变量,也就是R,2就表示选择因变量第二项source_angle,从而实现了降维。lambda_sweep是外层扫描的参数(扫描三个波长),pinch最后一项1,2,3就代表三个对应波长。曲线与内层扫描对应,曲线条数与外层扫描对应。
2.num2str(x)函数:将数字x转换为字符串。x也可以是一维或二维矩阵。制表符(而不是空格)将用作列之间的分隔符。
3.getsweepresult命令:out = getsweepresult("sweep_name", "result");从指定的参数扫描,优化,蒙特卡洛或S参数扫描任务返回指定的结果数据集。
4.plot命令:作图,plot(x,y, "x label", "y label", "title", "options");