⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bodiejia.m

📁 波叠加的matlab源程序
💻 M
字号:
% 波的叠加与反射 
close all 
line([-2,18],[0,0]);hold on 
axis([-2,18,0,8]) 
L=-2:.1:18; 
P=23; 
s1=1;s2=-1; 
K1=1:P;B=length(L); 
K2=[201-P+1:201]; 
y1=zeros(1,B);y1(K1)=1; 
H1=plot(L,y1,'r'); 
yy2=[0,0:.1:0.9,0.9,0.9:-0.1:0,0]; 
y2=zeros(1,B);y2(K2)=yy2; 
H2=plot(L,y2,'g'); 
% Author's email:zjliu2001@163.com 
H0=plot(L,zeros(1,B),'black'); 
HH=plot(L,zeros(1,B)); 
plot([-1,-1],[0,5],':');plot([17,17],[0,5],':'); 

set(gcf,'doublebuffer','on'); 
k=1; 
xlabel('Please press "space" key and stop this program!',... 
   'fontsize',14,'color','r'); 
while k 
   pause(0.04); 
   K1=K1+s1;y1=zeros(1,B);y1(K1)=1; 
   if K1(1)==1 | K1(end)==B; 
       s1=-s1; 
   end 
   K2=K2+s2;y2=zeros(1,B);y2(K2)=yy2; 
   if K2(1)==1 | K2(end)==B; 
       s2=-s2; 
   end 
   s=get(gcf,'currentkey'); 
   if strcmp(s,'space'); 
       clc;k=0; 
   end 
   YY=y1+y2; 
   Y1=zeros(1,B);Y1(YY==1)=1; 
   Y2=zeros(1,B);Y2(0<YY & YY<1)=YY(0<YY & YY<1); 
   Y0=zeros(1,B);Y0(YY>1)=YY(YY>1); 
   set(H1,'ydata',Y1); 
   set(H2,'ydata',Y2); 
   set(H0,'ydata',Y0); 
   set(HH,'color','b'); 
end 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -