lyj 发表于 2007-1-18 15:58

帮忙看看

nr=44;ns=29;Lx=1.0;Ly=1.5;c=340;f=200;
k=2*pi*f/c;
for r=0:1:nr
    k(r)=r*pi/Lx;                     %求k(r,x),x坐标
    k'(r)=sqrt(k^2-k(r)^2);         %求k(r,y),y坐标
    bo(r)=cos(k(r)*x)exp(-i*k'(r)*y);
    bo'=zeros(1,nr);
    bo'(1,r)=bo(r);
end
???   k'(r)=sqrt(k^2-k(r)^2);         %求k(r,y),y坐标
          |
Error: Unbalanced or misused parentheses or brackets.

哪位大狭能告诉我这怎么回事,该怎么改吗?谢谢

geoer 发表于 2007-1-18 16:29

有很多常识性的错误。变量命名,变量名中可包含字母、数字、下划线,但是标点不能用。

studyboy 发表于 2007-1-18 16:32

你这存在几个语法错误:
1. k'在Matlab中表示的是转置,建议换一个字母表示,bo'也是同样道理;
2. bo(r)=cos(k(r)*x)exp(-i*k1(r)*y) 中存在语法错误,少了*;
3. bo'(1,r)=bo(r)表示的是什么意思,
还有一些………………
总之,这段程序错误比较多,建议楼主多看看基本的知识。

xjzuo 发表于 2007-1-18 19:07

回复

请先把问题讲清楚一些.
另: x,y未定义,是要作为符号变量吗?

xjzuo 发表于 2007-1-18 19:49

大概猜了一下意思, 不知向量函数bo是否是你所求.
顺便也优化了一下程序:
%%%%%%%%%%%%%
nr=44;
ns=29;
Lx=1.0;
Ly=1.5;
c=340;
f=200;
k=2*pi*f/c;

syms x y
r=0:nr; %%%按原意, 可能应为nr-1
k1=r*pi/Lx;   
k2=sqrt(k^2-k1.^2);
bo=cos(k1*x).*exp(-i*k2*y);
%%%%%%%%%%%%%%%%%%%%%%%%
%%%再打印向量函数的前几个分量图形看看
ezplot(bo(1))
figure
ezplot(bo(2))
figure
ezplot(bo(3)) %%%似乎越来越奇怪
%%%%%%%%%%%%%%%%%%%%%
建议还是把问题用word文档上传一下.

[ 本帖最后由 xjzuo 于 2007-1-18 19:50 编辑 ]

lyj 发表于 2007-1-19 10:01

我的意思是形成一个1行nr列的矩阵,命名为bo,但其中每个元素是由循环产生的bo(r)组成的,请教各位那该怎么改?

geoer 发表于 2007-1-19 11:12

请看仔细看5楼贴,已经完全按照你的意思写了,只不过用向量代替了循环。

lyj 发表于 2007-1-19 12:17

谢谢,特别感谢五楼的xizuo,新手有什么不会的还请多指教
页: [1]
查看完整版本: 帮忙看看