MATLAB高等光学仿真——反射率,透射率变化
1.subplot(m,n,p)或者subplot(m n p)。
subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果m=2就是表示2行图。p表示图所在的位置,p=1表示从左到右从上到下的第一个位置。subplot(m,n,p) 是画一张图中包含若干子图,每个子图也是连续的,可将多个图画到一个平面上。
用法如下所示:
由以上我们可以看到,他是可以把好几张图画到同一figure里面。
2.stem() 函数用来画一张整图,画出来是离散函数。plot() 是连续函数,可以画一张连续的图;最一般最常用的画法。
3.abs()函数的三大功能
- 求实数的绝对值
- 求复数的模
- 求字符串的ASCII码值。
4.legend()函数是图例注释函数,一般用法为legend(线性1,线性2,…参数字符串…)
5.num2str()函数的使用方法
- str = num2str(A)即将数字A转换成char类型,值得注意的是A也可以是数字类型的数组。
- str = num2str(A, precision)
A: 数值类型的数组或者是单个的数值
precision:转换成字符穿保留的数字位数
- str = num2str(A, format)
A: 数值类型的数组或者是单个的数值
format:指定数字转换为字符串的格式,通常’%11.4g’是默认的。 也可以指定转换为几位的字符串,不足用0填充,如%02d, %03d等。
6.axis( [xmin xmax ymin ymax] )函数:可以设置当前坐标轴 x轴 和 y轴的限制范围。
7.grid on表示作图加栅格。
程序如下:
clear%清空内存空间
clear all%关闭所有作图页面
n1=1,n2=1.45;
theta=0:0.1:90;%入射角范围,步距0.1°
a=theta*pi/180;%角度化为弧度
rp=(n2cos(a)-n1sqrt(1-(n1/n2sin(a)).^2))./…
(n2cos(a)+n1sqrt(1-(n1/n2sin(a)).^2));
rs=(n1cos(a)-n2sqrt(1-(n1/n2sin(a)).^2))./…
(n1cos(a)+n2sqrt(1-(n1/n2sin(a)).^2));
tp=2n1cos(a)./(n2cos(a)+n1sqrt(1-(n1/n2sin(a)).^2));
ts=2n1cos(a)./(n1cos(a)+n2sqrt(1-(n1/n2sin(a)).^2));
figure(1);
subplot(1,2,1);%画第一行第一列第一个图
plot(theta,rp,’-’,theta,rs,’–’,theta,abs(rp),’:’,…
theta,abs(rs),’-.’,‘LineWidth’,2);
legend(‘r_p’,‘r_s’,‘t_p’,‘t_s’);
xlabel(’\theta_i’);
ylabel(‘AM’);
title([‘n_1=’,num2str(n1),‘n_2=’,num2str(n2)]);
axis([0,90,-1,1]);
grid on
subplot(1,2,2);%画第一行第一列第一个图
plot(theta,tp,’-’,theta,ts,’–’,theta,abs(tp),’:’,…
theta,abs(ts),’-.’,‘LineWidth’,2);
legend(‘r_p’,‘r_s’,‘t_p’,‘t_s’);
xlabel(’\theta_i’);
ylabel(‘AM’);
title([‘n_1=’,num2str(n1),‘n_2=’,num2str(n2)]);
axis([0,90,0,1]);
grid on