程序运行出错
nr=44;ns=29;
Lx=1.0;
Ly=1.5;
c=340;
f=200;
k=2*pi*f/c;
syms x y
for r=0:nr
k1=r*pi/Lx; %求k(r,x),x坐标
k2=sqrt(k^2-k1^2); %求k(r,y),y坐标
bo1=cos(k1*x).*exp(-i*k2*y);
end
for s=0:ns
k1=s*pi/Ly; %k(s,y),y坐标
k2=sqrt(k^2-k1^2); %k(s,x),x坐标
bo2=exp(-i*k2*x).*cos(k1*y);
end
bo= %波函数矩阵
bo1是要形成一个1行nr+1列的矩阵,bo2是要形成一个1行ns+1列,矩阵我想用此程序来形成一个1行nr+ns+2列的矩阵bo,但是运行出来为什么bo是个1行2列的矩阵呢?大狭赐教一下吧,谢谢
[ 本帖最后由 eight 于 2007-6-6 11:39 编辑 ]
回复
注意将你每次循环的表达式存入一个向量中.另:请勿重复发帖.标题要表达清楚你的主题.
还有,我已经在你的前一个帖子中解决了你的问题,
请多思考一下向量化后的优化程序.
[ 本帖最后由 xjzuo 于 2007-1-20 19:30 编辑 ] 我看了你回的那个帖子了,还是有点不会,麻烦能帮我把这个解决下吗?谢谢了,你说的那些问题我以后会改正的
回复
把我原先的回复照抄,你后来加上的部分也只要改动一下下标,几乎也可照抄.有时间再多想想原由吧. nr=44;
ns=29;
Lx=1.0;
Ly=1.5;
c=340;
f=200;
k=2*pi*f/c;
bo1=[];
bo2=[];
syms x y
for r=0:nr
k1=r*pi/Lx; %求k(r,x),x坐标
k2=sqrt(k^2-k1^2); %求k(r,y),y坐标
bo1=;
end
for s=0:ns
k1=s*pi/Ly; %k(s,y),y坐标
k2=sqrt(k^2-k1^2); %k(s,x),x坐标
bo2=;
end
bo= %波函数矩阵 nr=44;
ns=29;
Lx=1.0;
Ly=1.5;
c=340;
f=200;
bo=[];
k=2*pi*f/c;
syms x y
r=0:nr
k1=r*pi/Lx; %求k(r,x),x坐标
k2=sqrt(k^2-k1^2); %求k(r,y),y坐标
bo1=cos(k1*x).*exp(-i*k2*y);
s=0:ns
k3=s*pi/Ly; %k(s,y),y坐标
k4=sqrt(k^2-k3^2); %k(s,x),x坐标
bo2=exp(-i*k4*x).*cos(k3*y);
bo= %波函数矩阵
这样改了还是不对啊 看来你没有进行copy,漏了点运算,修改后如下:
%%%%%%%%%%%%%%%%%%%%%%%%%%
nr=44;
ns=29;
Lx=1.0;
Ly=1.5;
c=340;
f=200;
bo=[];
k=2*pi*f/c;
syms x y
r=0:nr;
k1=r*pi/Lx; %求k(r,x),x坐标
k2=sqrt(k^2-k1.^2); %求k(r,y),y坐标
bo1=cos(k1*x).*exp(-i*k2*y);
s=0:ns;
k3=s*pi/Ly; %k(s,y),y坐标
k4=sqrt(k^2-k3.^2); %k(s,x),x坐标
bo2=exp(-i*k4*x).*cos(k3*y);
bo= %波函数矩阵
%%%%%%%%%%%%%%%%%%%%%%%%%
希望你能自己看看书,争取弄懂点运算,对以后编程很重要. 谢谢,我会看的
页:
[1]