电基本振子的E面,H面方向图以及立体方向图的matlab代码
时间: 2024-03-26 15:40:50 浏览: 177
以下是一个简单的 Matlab 代码,用于绘制电磁场基本振荡器的 E- 和 H-面方向图以及立体方向图:
```matlab
% 定义常数
c = 3e8; % 光速
f = 1e9; % 频率
lambda = c/f; % 波长
% 定义网格
x = -lambda/2:lambda/20:lambda/2;
y = -lambda/2:lambda/20:lambda/2;
z = -lambda/2:lambda/20:lambda/2;
% 创建网格
[X,Y,Z] = meshgrid(x,y,z);
% 定义电场分量
Ex = sin(2*pi*X/lambda).*cos(2*pi*Y/lambda).*cos(2*pi*Z/lambda);
Ey = -cos(2*pi*X/lambda).*sin(2*pi*Y/lambda).*cos(2*pi*Z/lambda);
Ez = 0;
% 定义磁场分量
Hx = 0;
Hy = 0;
Hz = sin(2*pi*X/lambda).*cos(2*pi*Y/lambda).*sin(2*pi*Z/lambda);
% 绘制 E-面方向图
figure;
quiver3(X(:,:,end/2),Y(:,:,end/2),Z(:,:,end/2),Ex(:,:,end/2),Ey(:,:,end/2),Ez(:,:,end/2));
title('E-面方向图');
xlabel('X');
ylabel('Y');
zlabel('Z');
axis tight equal;
% 绘制 H-面方向图
figure;
quiver3(X(:,:,end/2),Y(:,:,end/2),Z(:,:,end/2),Hx(:,:,end/2),Hy(:,:,end/2),Hz(:,:,end/2));
title('H-面方向图');
xlabel('X');
ylabel('Y');
zlabel('Z');
axis tight equal;
% 绘制立体方向图
figure;
quiver3(X,Y,Z,Ex,Ey,Ez);
hold on;
quiver3(X,Y,Z,Hx,Hy,Hz);
title('立体方向图');
xlabel('X');
ylabel('Y');
zlabel('Z');
axis tight equal;
```
该代码使用 `meshgrid` 创建了一个 $21\times21\times21$ 的网格,并定义了电场和磁场在每个网格点的分量。然后,使用 `quiver3` 函数将每个网格点的电场和磁场方向画成箭头,绘制了 E- 和 H- 面方向图以及立体方向图。
阅读全文