声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1863|回复: 5

[图像处理] 悲催菜鸟请教高手这个matlab程序如何画图?

[复制链接]
发表于 2011-5-17 16:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

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

使用道具 举报

发表于 2011-5-18 00:28 | 显示全部楼层
若是我
help + debug
 楼主| 发表于 2011-5-18 09:27 | 显示全部楼层
回复 2 # ChaChing 的帖子

还是要谢谢你
发表于 2011-5-18 10:30 | 显示全部楼层
回复 3 # 流浪的耳朵 的帖子

连个画图的命令都没有,怎么画呀,起码得有个plot吧?你的程序中就没见你有让它执行画图的命令,所以只能出数据了
 楼主| 发表于 2011-5-18 13:02 | 显示全部楼层
回复 4 # 煜宸0922 的帖子

我就是不会将运行后得出的这些数据进行作图啊~~
求指导。。。
发表于 2011-5-18 14:21 | 显示全部楼层
回复 5 # 流浪的耳朵 的帖子

找本matlab的书,看关于画图的,用的命令是plot(),括号里把你要画的变量输入进去。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 08:34 , Processed in 0.070332 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表