Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-08-20
年龄: 39
帖子: 2
声望力: 0 ![]() |
![]()
小弟刚开始学习Matlab,请教哪位大侠能看下下面小段代码的问题:
clc;clear; M = 5; N = 5; Mun_points = 6*M*N+2*N; Ht_z = zeros(Mun_points,1); Ht_theta = zeros(Mun_points,1); Htx_val = 1000; Hty_val = 1000; L=.3; a=.15; c=.08; d=0; omiga = 2*pi*64e6; miu0 = 4*pi*1.0e-7; epos0 = 1.0e-9/(36*pi); alf = omiga*sqrt(miu0*epos0); for j = 1:2*N for k = 1:3*M+1 Ht_z(j+(k-1)*2*N) = 2*c*j/(2*N)+d; Ht_theta(j+(k-1)*2*N) = 2*pi*k/(3*M+1); end end m=1; n=1; syms z0 belta; for k = 1:Mun_points temp_offset = a*cos(belta)-sqrt(c^2-(Ht_z(k)-d)^2); Rc = sqrt(a^2+c^2-(Ht_z(k)-d)^2-2*a*sqrt(c^2-(Ht_z(k)-d)^2)*cos(belta)+(z0-Ht_z(k))^2); temp_coef = a/(2*pi); temp_exp = exp(-i*alf*Rc)*(i*alf/(Rc^2)+1/(Rc^3)) ; digits(3); %fSx1mn = vpa(a/(2*pi)*(a*cos(belta)-sqrt(c^2-(Ht_z(k)-d)^2))*cos(m*belta)*sin(n*pi*(z0+L/(2*L)))) f=@(z0,belta)temp_coef*temp_offset*cos(m*belta)*sin(n*pi*(z0+L/(2*L)))*temp_exp Sx1mn(k) = dblquad(f,-L,L,0,2*pi); end %*************************************************% 运行后: ??? Error using ==> dblquad>innerintegral at 81 Inputs must be floats, namely single or double. Error in ==> quad at 77 y = f(x, varargin{:}); Error in ==> dblquad at 60 Q = quadf(@innerintegral, ymin, ymax, tol, trace, intfcn, ... Error in ==> Untitled2 at 45 Sx1mn(k) = dblquad(f,-L,L,0,2*pi); |
![]() |
![]() |