如何使下列代码动态显示% Progrma 1 for i=0:100; t=0.01*i; beta=2*pi;omega=2*pi;Ho=10;a=1;kc=pi/a; [x,z]=meshgrid(0:0.05:1,0:0.05:2); Ey=real((omega/kc)*abs(Ho).*sin(pi/a.*x).*exp(j*(omega.*t-beta.*z))); subplot(3,1,1);surf(10*x,10*z,-Ey); view(75,35); axis([0 10 0 20 -20 20]); text(5.5,-3,-20,'x');text(10,10,-25,'z');zlabel('y'); subplot(3,1,2); z=[0:0.1:2]; Eyz=-real((omega/kc)*abs(Ho)*sin(pi/a*a/2).*exp(j*(omega.*t-beta.*z))); stem(Eyz,'fill','-');hold on; plot(10*z+1,Eyz,'r');hold off; xlabel('z');ylabel('y');legend('纵截面Ey'); axis([1 21 -30 35]); subplot(3,1,3); x=[0:0.1:1]; Eyx=-real((omega/kc)*abs(Ho)*sin(pi/a.*x).*exp(j*(omega.*t))); Z=j*Eyx; stem(Eyx,'fill','-');hold on; plot(10*x+1,Eyx,'r');hold off; xlabel('x');ylabel('y');legend('横截面Ey'); axis({1 11 -30 35}); end
时间: 2024-03-22 07:38:00 浏览: 78
查看页面源代码,动态显示
要使上述代码动态显示,可以在每次循环迭代时使用drawnow函数强制绘图更新,以便实时显示动态变化。具体步骤如下:
1. 在循环开始之前,使用figure函数创建一个绘图窗口,并设置好子图的布局。
2. 在每次循环迭代时,使用subplot函数进入到需要更新的子图中。
3. 在每个子图中使用plot或surf等函数绘制数据,并使用axis函数设置坐标轴范围、标签等。
4. 在每个子图的最后,使用drawnow函数强制绘图更新,以便实时显示动态变化。
5. 循环结束后,可以使用close函数关闭绘图窗口。
以下是修改后的示例代码,演示了如何动态显示三个子图的变化:
```
% 创建绘图窗口,并设置子图的布局
figure;
subplot(3,1,1);
subplot(3,1,2);
subplot(3,1,3);
% 循环控制时间变化
for i=0:100
% 计算数据
t=0.01*i;
beta=2*pi;
omega=2*pi;
Ho=10;
a=1;
kc=pi/a;
[x,z]=meshgrid(0:0.05:1,0:0.05:2);
Ey=real((omega/kc)*abs(Ho).*sin(pi/a.*x).*exp(j*(omega.*t-beta.*z)));
z=[0:0.1:2];
Eyz=-real((omega/kc)*abs(Ho)*sin(pi/a*a/2).*exp(j*(omega.*t-beta.*z)));
x=[0:0.1:1];
Eyx=-real((omega/kc)*abs(Ho)*sin(pi/a.*x).*exp(j*(omega.*t)));
Z=j*Eyx;
% 进入第一个子图,绘制surf图
subplot(3,1,1);
surf(10*x,10*z,-Ey);
view(75,35);
axis([0 10 0 20 -20 20]);
text(5.5,-3,-20,'x');
text(10,10,-25,'z');
zlabel('y');
% 进入第二个子图,绘制stem图
subplot(3,1,2);
stem(Eyz,'fill','-');
hold on;
plot(10*z+1,Eyz,'r');
hold off;
xlabel('z');
ylabel('y');
legend('纵截面Ey');
axis([1 21 -30 35]);
% 进入第三个子图,绘制stem图
subplot(3,1,3);
stem(Eyx,'fill','-');
hold on;
plot(10*x+1,Eyx,'r');
hold off;
xlabel('x');
ylabel('y');
legend('横截面Ey');
axis({1 11 -30 35});
% 强制更新绘图
drawnow;
end
% 关闭绘图窗口
close;
```
在这个示例中,我们通过在每个子图的最后使用drawnow函数强制更新绘图,实现了动态显示三个子图的变化。你可以根据自己的需要修改代码,实现不同的动态效果。
阅读全文