![]() |
请高手们帮帮忙
我在写一个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: |
回复: 请高手们帮帮忙
你这程序 问题很大 这么多循环 速度肯定很慢 要优化
其实matlab 已经给你出现问题的地方和原因了,程序运行到24条命令的时候,你的矩阵维数和后面的数组不一致!所以不能相加!你自己去找答案不断的调试才能认清问题的本质,学到东西。努力吧... |
所有时间均为北京时间。现在的时间是 11:13。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.