流浪的耳朵 发表于 2011-5-17 16:01

悲催菜鸟请教高手这个matlab程序如何画图?

本帖最后由 流浪的耳朵 于 2011-5-17 17:22 编辑

以前很少接触matlab这个软件,所以我对这方面完全是菜鸟{:{24}:},老师突然布置任务给我,要求写一篇关于用matlab仿真液固界面的声场。。悲催了咩~~{:{19}:}
狂补习matlab的相关知识,但事实证明临时抱佛脚的结果无济于事的。。虽然学了不少关于matlab的知识,但是似乎都用不上,或者不晓得怎么用。。这道程序我对照公式反反复复研究好几个星期了,没能看懂,深爱的秀发也被自己揪掉好多{:{18}:}。。。
求~~高手。。大神。。帮我看看这道程序好不??运行后貌似只有一堆数据,如何画出图像来呀( ⊙ o ⊙ )!。。纠结死了。。
哦,这是关于求液体、固体内声场的空间分布的。。呃,高手即使不能不能出图,帮我看看成不,帮我在每行程序后面注解一下也行,我不胜感激。。{:{24}:}我决定跟这个程序死磕到底了。。 vc=6260;vs=3080;den=2.7;qc=60;qs=60;
vf=1500;qf=45;def=1;d0=.1;df=300000/1024;dl=150/1024;
knumber=512;znumber=64;omnumb=1;omnume=512;tnumber=10;
dt=10;fo=70;b=25;xz=4;dz=xz/dl/2/knumber;dx=1/dl/2/knumber;
vff=vf*(1-i/2/qf);vcc=vc*(1-i/2/qc);vss=vs*(1-i/2/qs);
freq=zeros(1,omnume);
ferk=zeros(1.2*omnume);fre=zeros(1,2*omnume+1);wfe=zeros(1,omnume);
for iso=1:omnume;sou(1,iso)=exp(-(iso*df/1000-fo)^2/b^2);end
for kn=1:knumber;l=2*pi*(kn-1)*dl;
    for omn=omnumb:omnume;
      om=2*pi*omn*(df-1);kz=((om*om)/(vff*vff)-l*l)^0.5;
      kc=((om*om)/(vcc*vcc)-l*l)^0.5;
      ks=((om*om)/(vss*vss)-l*l)^0.5;
      A1=[-i*kz,-i*kc,i*l];m2=ks*ks-l*l;m3=2*l*kc;
      A3=;m2=(2*vs*vs*l*l-om*om)*den;
      m3=2*vs*vs*den*l*ks;A2=;
      eh=exp(i*kz*d0);
      B=[-i*eh;-om*om*def/kz*eh;0];
      M=;
      C=inv(M)*B;
      for nz=1:znumber;
            ezc=exp(i*kc*(nz-1)*dz);ezs=exp(i*ks*(nz-1)*dz);
            spectrum(nz,omn)=m2*C(2)*ezc+m3*C(3)*ezs;
      end
      for nz=1:znumber;
            ez=exp(i*kz*(nz-1)*dz);spectrumf(nz,omn)=C(1)*ez;
      end
    end
    for nz=1:znumber;
      freq=spectrum(nz,:);freq=freq.*sou;fre=;
      frek=fre(1,1:2*omnume);wfe=fft(frek);
      for it=1:tnumber;
            imagtzk(it,nz,kn)=wfe(dt*it);
      end
      freq=spectrumf(nz,:);freq=freq.*sou;fre=;
      frek=fre(1,1:2*omnume);wfe=fft(frek);
      for it=1:tnumber;
            imagtzkf(it,nz,kn)=wfe(dt*it);
      end
    end
end
for it=1:tnumber;
    for nz=1:znumber;
      freqq=reshape(imagtzk(it,nz,:),1,knumber);freq=;
      fres=freq(1,1:2*knumber);frekq=ifft(fres);
      imag(it,nz,:)=real(frekq(1,1:knumber));
      freqq=reshape(imagtzkf(it,nz,:),1,knumber);freq=;
      fres=freq(1,1:2*knumber);frekq=ifft(fres);
      imagf(it,nz,:)=real(frekq(1,1:knumber));
    end
end

ChaChing 发表于 2011-5-18 00:28

若是我
help + debug

流浪的耳朵 发表于 2011-5-18 09:27

回复 2 # ChaChing 的帖子

还是要谢谢你

煜宸0922 发表于 2011-5-18 10:30

回复 3 # 流浪的耳朵 的帖子

连个画图的命令都没有,怎么画呀,起码得有个plot吧?你的程序中就没见你有让它执行画图的命令,所以只能出数据了

流浪的耳朵 发表于 2011-5-18 13:02

回复 4 # 煜宸0922 的帖子

我就是不会将运行后得出的这些数据进行作图啊~~
求指导。。。

煜宸0922 发表于 2011-5-18 14:21

回复 5 # 流浪的耳朵 的帖子

找本matlab的书,看关于画图的,用的命令是plot(),括号里把你要画的变量输入进去。
页: [1]
查看完整版本: 悲催菜鸟请教高手这个matlab程序如何画图?