登录论坛

查看完整版本 : 请高手们帮帮忙


zhaoxuanchen
2008-12-02, 08:07
我在写一个code
x=[0 3.8317 7.01558 10.17346 13.32369; 1.84118 5.3314 8.5363 11.706 14.86359;
3.05424 6.70613 9.96947 13.1703 16.34752; 4.20119 8.01524 11.346 14.586 17.7888;
5.3176 9.2824 12.682 15.964 19.196]';
q=25*ones(265,1);
a=40;
beta=x/a;
b=160;
l=1:5;
alpha=l*pi/b;

r=0:40/4:40;
theta=0:pi/2:2*pi;
z=0:160/4:160;


for i=1:length(r)
for j=1:length(z)
for k=1:length(theta)
u(i,j,k)=0;
for l=1:5
for m=1:5
u(i,j,k)=u(i,j,k)+q(1:25)*exp(-((beta(m,1)^2+alpha(l)^2)*t))*cos(alpha(l)*z(j))*besselj(0,beta(m,1)*r(i));
for n=2:5
u(i,j,k)=u(i,j,k)+q(26:145)*exp(-((beta(m,n)^2+alpha(l)^2)*t))*cos(alpha(l)*z(j))*cos(n*theta(k))*besselj(n-1,beta(m,n)*r(i));
u(i,j,k)=u(i,j,k)+q(146:265)*exp(-((beta(m,n)^2+alpha(l)^2)*t))*cos(alpha(l)*z(j))*sin(n*theta(k))*besselj(n-1,beta(m,n)*r(i));
end
end
end
end
end
end

运行的时候出现“??? Error using ==> plus
Matrix dimensions must agree.

Error in ==> new at 24
u=u+q(26:145)*exp(-((beta(m,n)^2+alpha(l)^2)*t))*cos(alpha(l)*z(j))*cos(n*theta(k))*besselj(n-1,beta(m,n)*r(i));”
请问是什么意思,应该怎么解决呢:cry:

feifeihanyu
2008-12-02, 08:47
你这程序 问题很大 这么多循环 速度肯定很慢 要优化
其实matlab 已经给你出现问题的地方和原因了,程序运行到24条命令的时候,你的矩阵维数和后面的数组不一致!所以不能相加!你自己去找答案不断的调试才能认清问题的本质,学到东西。努力吧...