zheda4.m
来自「该程序对二维光子晶体进行了域值考虑」· M 代码 · 共 55 行
M
55 行
function[a,b,gamma,theta,phi]=pattern
clear
lambda=0.514;
N=2;
I=zeros(1,2);
I=ones(1,2);
Itot=sum(I);
E=sqrt(I);
Theta=pi/6;
Phi=zeros(1,N);
for m=1:2
Phi(m)=2.*pi*(m-1)/N;
end
delta=zeros(1,N);
theta=zeros(1,N);
theta(:)=Theta;
phi=zeros(1,N);
phi=Phi;
d=2;
num=200;
x=linspace(-d,d,num);
y=linspace(-d,d,num);
for i=1:num
for j=1:num
r(:,i,j)=[x(j),y(i),0];
end
end
k=2.*pi/lambda;
for m=1:N
K(m,:)=k*[cos(Phi(m)).*sin(theta(m)),sin(Phi(m)).*sin(theta(m)),cos(theta(m))];
end
for i=1:num
for j=1:num
temp=0;
lm=1; %The index
for l=1:N-1
for m=l+1:N
G(lm,:)=K(l,:)-K(m,:);
delta(lm)=delta(l)-delta(m);
V(lm)=2.*E(l)*E(m)/Itot;
W(lm)=-2.*E(l)*E(m)/Itot;
temp=temp+cos(G(lm,:)*r(:,i,j)+delta(lm))...
+sin(G(lm,:)*r(:,i,j)+delta(lm));
lm=lm+l;
end
end
Iout(i,j)=1+temp;
end
end
figure;
axis equal;
title('N=6');
imshow(Iout/max(max(Iout)),[0,1])
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?