声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1057|回复: 7

[编程技巧] 程序运行出错

[复制链接]
发表于 2007-1-20 19:12 | 显示全部楼层 |阅读模式

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

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

x
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 bo2]                     %波函数矩阵
bo1是要形成一个1行nr+1列的矩阵,bo2是要形成一个1行ns+1列,矩阵我想用此程序来形成一个1行nr+ns+2列的矩阵bo,但是运行出来为什么bo是个1行2列的矩阵呢?大狭赐教一下吧,谢谢

[ 本帖最后由 eight 于 2007-6-6 11:39 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-1-20 19:25 | 显示全部楼层

回复

注意将你每次循环的表达式存入一个向量中.
另:请勿重复发帖.标题要表达清楚你的主题.
还有,我已经在你的前一个帖子中解决了你的问题,
请多思考一下向量化后的优化程序.

[ 本帖最后由 xjzuo 于 2007-1-20 19:30 编辑 ]
 楼主| 发表于 2007-1-20 21:07 | 显示全部楼层
我看了你回的那个帖子了,还是有点不会,麻烦能帮我把这个解决下吗?谢谢了,你说的那些问题我以后会改正的
发表于 2007-1-20 21:16 | 显示全部楼层

回复

把我原先的回复照抄,你后来加上的部分也只要改动一下下标,几乎也可照抄.
有时间再多想想原由吧.
发表于 2007-1-20 21:17 | 显示全部楼层
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=[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=[bo2 exp(-i*k2*x).*cos(k1*y)];
end
bo=[bo1 bo2]                     %波函数矩阵
 楼主| 发表于 2007-1-20 22:06 | 显示全部楼层
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=[bo1 bo2]                     %波函数矩阵
这样改了还是不对啊
发表于 2007-1-20 22:44 | 显示全部楼层
看来你没有进行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=[bo1 bo2]                     %波函数矩阵
%%%%%%%%%%%%%%%%%%%%%%%%%
希望你能自己看看书,争取弄懂点运算,对以后编程很重要.
 楼主| 发表于 2007-1-21 17:21 | 显示全部楼层
谢谢,我会看的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-24 19:21 , Processed in 0.061881 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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