Error using pcolor function
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi , I want to plot my f_E function according to thetas and rs.But pcolor doesnt work.I got ??? Error using ==> pcolor at 55 Color data input must be a matrix.
If anyone helps me , I apreciate it.Thx for your concern.
if true
clear all
format long
tic
N_cut=19;
eps0=(10^-9)/(36*pi);
mu0=4*pi*10^-7;
epsr1=56.8;
epsr2=20.9;
epsr3=41.41;
mur1=1.;
mur2=1.;
mur3=1.;
eps1=epsr1*eps0;
eps2=epsr2*eps0;
eps3=epsr3*eps0;
mu1=mur1*mu0;
mu2=mur2*mu0;
mu3=mur3*mu0;
freq=9*10^6;
omeg=2*pi*freq;
sigma1=1.10;
sigma2=0.34;
sigma3=0.87;
k1=sqrt(omeg*omeg*eps1*mu1-1i*omeg*sigma1*mu1);
k2=sqrt(omeg*omeg*eps2*mu2-1i*omeg*sigma2*mu2);
k3=sqrt(omeg*omeg*eps3*mu3-1i*omeg*sigma3*mu3);
k0=omeg*sqrt(eps0*mu0);
phi=pi/2;
R_1=0.09;
R_2=0.1;
R_3=0.15;
X=mu0/mu2;
Y=mu1/mu2;
Z=mu0/mu3;
T=mu2/mu3;
X1=k0/k2;
Y1=k1/k2;
Z1=k0/k3;
T1=k2/k3;
for n=1:N_cut
A(n)=sqrt(pi.*k0.*(R_3)/2).*besselj(n+0.5,k0.*(R_3));
B(n)=-sqrt(pi*k0*(R_3)/2)*besselj(n+1.5,k0*(R_3))+(n+1).*sqrt(pi/(2*k0*(R_3)))*besselj(n+0.5,k0*(R_3));
C(n)=sqrt(pi.*k0.*(R_3)/2).*besselh(n+0.5,2,k0.*(R_3));
D(n)=-sqrt(pi*k0*(R_3)/2)*besselh(n+1.5,2,k0*(R_3))+(n+1).*sqrt(pi/(2*k0*(R_3)))*besselh(n+0.5,2,k0*(R_3));
E(n)=sqrt(pi.*k3.*(R_3)/2).*besselh(n+0.5,1,k3.*(R_3));
F(n)=-sqrt(pi*k3*(R_3)/2)*besselh(n+1.5,1,k3*(R_3))+(n+1).*sqrt(pi/(2*k3*(R_3)))*besselh(n+0.5,1,k3*(R_3));
G(n)=sqrt(pi.*k3.*(R_3)/2).*besselh(n+0.5,2,k3.*(R_3));
H(n)=-sqrt(pi*k3*(R_3)/2).*besselh(n+1.5,2,k3*(R_3))+(n+1).*sqrt(pi/(2*k3*(R_3)))*besselh(n+0.5,2,k3*(R_3));
I(n)=(sqrt(pi*k3*((R_2)/2)).*besselh(n+0.5,1,k3.*(R_2)));
J(n)=-sqrt(pi.*k3.*((R_2)/2)).*besselh(n+1.5,1,k3.*(R_2))+(n+1).*sqrt(pi./(2.*k3.*(R_2))).*besselh(n+0.5,1,k3.*(R_2));
K(n)=sqrt(pi.*k3.*(R_2)/2).*besselh(n+0.5,2,k3.*(R_2));
L(n)=-sqrt(pi*k3*(R_2)/2)*besselh(n+1.5,2,k3*(R_2))+(n+1).*sqrt(pi/(2*k3*(R_2)))*besselh(n+0.5,2,k3*(R_2));
M(n)=sqrt(pi.*k2.*(R_2)/2).*besselh(n+0.5,1,k2.*(R_2));
N(n)=-sqrt(pi*k2*(R_2)/2)*besselh(n+1.5,1,k2*(R_2))+(n+1).*sqrt(pi/(2*k2*(R_2)))*besselh(n+0.5,1,k2*(R_2));
O(n)=sqrt(pi.*k2.*(R_2)/2).*besselh(n+0.5,2,k2.*(R_2));
P(n)=-sqrt(pi*k2*(R_2)/2)*besselh(n+1.5,2,k2*(R_2))+(n+1).*sqrt(pi/(2*k2*(R_2)))*besselh(n+0.5,2,k2*(R_2));
A1(n)=sqrt(pi.*k1.*(R_1)/2).*besselh(n+0.5,1,k1.*(R_1));
B1(n)=-sqrt(pi*k1*(R_1)/2)*besselh(n+1.5,1,k1*(R_1))+(n+1).*sqrt(pi/(2*k1*(R_1)))*besselh(n+0.5,1,k1*(R_1));
C1(n)=sqrt(pi.*k1.*(R_1)/2).*besselh(n+0.5,1,k1.*(R_1));
D1(n)=-sqrt(pi*k1*(R_1)/2)*besselh(n+1.5,2,k1*(R_1))+(n+1).*sqrt(pi/(2*k1*(R_1)))*besselh(n+0.5,2,k1*(R_1));
E1(n)=sqrt(pi.*k2.*(R_1)/2).*besselh(n+0.5,1,k2.*(R_1));
F1(n)=-sqrt(pi*k2*(R_1)/2)*besselh(n+1.5,1,k2*(R_1))+(n+1).*sqrt(pi/(2*k2*(R_1)))*besselh(n+0.5,1,k2*(R_1));
G1(n)=sqrt(pi.*k2.*(R_1)/2).*besselh(n+0.5,2,k2.*(R_1));
H1(n)=-sqrt(pi*k2*(R_1)/2)*besselh(n+1.5,2,k2*(R_1))+(n+1).*sqrt(pi/(2*k2*(R_1)))*besselh(n+0.5,2,k2*(R_1));
S(n)=(((1i)^(-n))*(2*n+1))/(n*(n+1));
R1_H(n)=sqrt((mu2*eps1)/(eps2*mu1))*((A1(n)+C1(n))/(B1(n)+D1(n)));
R1_E(n)=sqrt((mu1*eps2)/(eps1*mu2))*((A1(n)+C1(n))/(B1(n)+D1(n)));
Q(n)=-((E1(n)-R1_H(n)*F1(n))/(G1(n)-R1_H(n)*H1(n)));
R(n)=-((E1(n)-R1_E(n)*F1(n))/(G1(n)-R1_E(n)*H1(n)));
R2_H(n)=sqrt((mu3*eps2)/(eps3*mu2))*((M(n)+Q(n)*O(n))/(N(n)+Q(n)*P(n)));
R2_E(n)=sqrt((mu2*eps3)/(eps2*mu3))*((M(n)+R(n)*O(n))/(N(n)+R(n)*P(n)));
Q2(n)=-((I(n)-R2_H(n)*J(n))/(K(n)-R2_H(n)*L(n)));
R2(n)=-((I(n)-R2_E(n)*J(n))/(K(n)-R2_E(n)*L(n)));
R3_H(n)=sqrt((mu0*eps3)/(eps0*mu3))*((E(n)+Q2(n)*G(n))/(F(n)+Q2(n)*H(n)));
R3_E(n)=sqrt((mu3*eps0)/(eps3*mu0))*((E(n)+R2(n)*G(n))/(F(n)+R2(n)*H(n)));
a(n)=-S(n)*((A(n)-R3_H(n)*B(n))/(C(n)-R3_H(n)*D(n)));
b(n)=-S(n)*((A(n)-R3_E(n)*B(n))/(C(n)-R3_E(n)*D(n)));
c3(n)=((S(n)*(A(n)*Z1*H(n)-B(n)*Z*G(n))+a(n)*(Z1*C(n)*H(n)-Z*D(n)*G(n)))/(Z*Z1*(E(n)*H(n)-F(n)*G(n))));
d3(n)=(S(n)*A(n)+a(n)*C(n)-Z*E(n)*c3(n))/(Z*G(n));
c3_prime(n)=((S(n)*(A(n)*Z*H(n)-B(n)*Z1*G(n))+b(n)*(Z*C(n)*H(n)-Z1*D(n)*G(n)))/(Z*Z1*(E(n)*H(n)-F(n)*G(n))));
d3_prime(n)=(S(n)*A(n)+b(n)*C(n)-Z1*E(n)*c3_prime(n))/(Z1*G(n));
c2(n)=(c3(n)*(T*I(n)*P(n)-T1*J(n)*O(n))+d3(n)*(T*K(n)*P(n)-T1*L(n)*O(n)))/(M(n)*P(n)-N(n)*O(n));
d2(n)=(T*I(n)*c3(n)+T*K(n)*d3(n)-c2(n)*M(n))/O(n);
c2_prime(n)=(c3_prime(n)*(T1*I(n)*P(n)-T*J(n)*O(n))+d3_prime(n)*(T1*K(n)*P(n)-T*L(n)*O(n)))/(M(n)*P(n)-N(n)*O(n));
d2_prime(n)=(T1*I(n)*c3_prime(n)+T1*K(n)*d3_prime(n)-c2_prime(n)*M(n))/O(n);
c1(n)=(Y*E1(n)*c2(n)+Y*G1(n)*d2(n))/(A1(n)+C1(n));
d1(n)=(Y*E1(n)*c2(n)+Y*G1(n)*d2(n))/(A1(n)+C1(n));
c1_prime(n)=(Y1*E1(n)*c2_prime(n)+Y1*G1(n)*d2_prime(n))/(A1(n)+C1(n));
d1_prime(n)=(Y1*E1(n)*c2_prime(n)+Y1*G1(n)*d2_prime(n))/(A1(n)+C1(n));
end
ygbegin=-0.15;
ygend=0.15;
zgbegin=-0.15;
zgend=0.15;
M_d=21;
deltayg=(ygend-ygbegin)/M_d;
deltazg=(zgend-zgbegin)/M_d;
xg=0;
yg=ygbegin:deltayg:ygend;
zg=zgbegin:deltazg:zgend;
for mg=1:M_d+1,
rg(mg)=sqrt(xg^2+yg(mg)^2+zg(mg)^2);
thetag(mg)=atan(sqrt(xg^2+yg(mg)^2)/zg(mg));
end
for mg=1:M_d+1
for n=1:N_cut
L1=legendre(n,cos(thetag(mg)));
L11=legendre(n-1,cos(thetag(mg)));
L2(n,mg)=L1(2,:);
if n==1
L3(n,mg)=0.;
else
L3(n,mg)=L11(2,:);
end
L2_der(n,mg)= (1/(sin(thetag(mg)).^2))*((-n)*cos(thetag(mg)*pi/180)*L2(n,mg)+(n+1)*L3(n,mg));
V(n,mg)=L2(n,mg)/(sin(thetag(mg)));
W(n,mg)=-(L2_der(n,mg)*sin(thetag(mg)));
hank1_kur1(n)=sqrt(pi.*k1.*(rg(mg))/2).*besselh(n+0.5,1,k1.*(rg(mg)));
hank2_kur1(n)=sqrt(pi.*k1.*(rg(mg))/2).*besselh(n+0.5,2,k1.*(rg(mg)));
hank1_kur1_der(n)=-sqrt(pi*k1*(rg(mg))/2)*besselh(n+1.5,1,k1*(rg(mg)))+(n+1).*sqrt(pi/(2*k1*(rg(mg))))*besselh(n+0.5,1,k1*(rg(mg)));
hank2_kur1_der(n)=-sqrt(pi*k1*(rg(mg))/2)*besselh(n+1.5,2,k1*(rg(mg)))+(n+1).*sqrt(pi/(2*k1*(rg(mg))))*besselh(n+0.5,2,k1*(rg(mg)));
hank1_kur2(n)=sqrt(pi.*k2.*(rg(mg))/2).*besselh(n+0.5,1,k2.*(rg(mg)));
hank2_kur2(n)=sqrt(pi.*k2.*(rg(mg))/2).*besselh(n+0.5,2,k2.*(rg(mg)));
hank1_kur2_der(n)=-sqrt(pi*k2*(rg(mg))/2)*besselh(n+1.5,1,k2*(rg(mg)))+(n+1).*sqrt(pi/(2*k2*(rg(mg))))*besselh(n+0.5,1,k2*(rg(mg)));
hank2_kur2_der(n)=-sqrt(pi*k2*(rg(mg))/2)*besselh(n+1.5,2,k2*(rg(mg)))+(n+1).*sqrt(pi/(2*k2*(rg(mg))))*besselh(n+0.5,2,k2*(rg(mg)));
hank1_kur3(n)=sqrt(pi.*k3.*(rg(mg))/2).*besselh(n+0.5,1,k3.*(rg(mg)));
hank2_kur3(n)=sqrt(pi.*k3.*(rg(mg))/2).*besselh(n+0.5,2,k3.*(rg(mg)));
hank1_kur3_der(n)=-sqrt(pi*k3*(rg(mg))/2)*besselh(n+1.5,1,k3*(rg(mg)))+(n+1).*sqrt(pi/(2*k3*(rg(mg))))*besselh(n+0.5,1,k3*(rg(mg)));
hank2_kur3_der(n)=-sqrt(pi*k3*(rg(mg))/2)*besselh(n+1.5,2,k3*(rg(mg)))+(n+1).*sqrt(pi/(2*k3*(rg(mg))))*besselh(n+0.5,2,k3*(rg(mg)));
bessel_out(n)=sqrt(pi.*k0.*(rg(mg))/2).*besselj(n+0.5,k0.*(rg(mg)));
hankel_out(n)=sqrt(pi.*k0.*(rg(mg))/2).*besselh(n+0.5,2,k0.*(rg(mg)));
bessel_out_der(n)=-sqrt(pi*k0*(rg(mg))/2)*besselj(n+1.5,k0*(rg(mg)))+(n+1).*sqrt(pi/(2*k0*(rg(mg))))*besselj(n+0.5,k0*(rg(mg)));
hankel_out_der(n)=-sqrt(pi*k0*(rg(mg))/2)*besselh(n+1.5,2,k0*(rg(mg)))+(n+1).*sqrt(pi/(2*k0*(rg(mg))))*besselh(n+0.5,2,k0*(rg(mg)));
if rg(mg)<=R_1
E(mg,n)=(sin(phi)/(k1*rg(mg)))*(((1i)*(c1(n)*hank1_kur1_der(n)+d1(n)*hank2_kur1_der(n))*V(n,mg))+((c1_prime(n)*hank1_kur1(n)+d1_prime(n)*hank2_kur1(n))*W(n,mg)));
else if R_1<rg(mg)<=R_2
E(mg,n)=(sin(phi)/(k2*rg(mg)))*(((1i)*(c2(n)*hank1_kur2_der(n)+d2(n)*hank2_kur2_der(n))*V(n,mg))+((c2_prime(n)*hank1_kur2(n)+d1_prime(n)*hank2_kur2(n))*W(n,mg)));
else if R_2<rg(mg)<=R_3
E(mg,n)=(sin(phi)/(k3*rg(mg)))*(((1i)*(c3(n)*hank1_kur3_der(n)+d3(n)*hank2_kur3_der(n))*V(n,mg))+((c3_prime(n)*hank1_kur3(n)+d3_prime(n)*hank2_kur3(n))*W(n,mg)));
else
E(mg,n)=(-sin(phi)/(k0*rg(mg)))*(((S(n)*bessel_out(n)+b(n)*hankel_out(n))*(-W(n,mg)))-((1i)*((S(n)*bessel_out_der(n)+a(n)*hankel_out_der(n))*...
V(n,mg))));
end
end
end
end
end
f_E=sum(E(mg,n),2);
figure
pcolor(abs(E(mg,n)))
hold
end
댓글 수: 0
채택된 답변
Walter Roberson
2013년 5월 3일
Your line
pcolor(abs(E(mg,n)))
is after your nested "for" loops, so mg and n will each have their final values from the loop, the scalars M_d+1 and N_cut respectively. So E(mg,n) is a scalar, and abs(E(mg,n)) remains a scalar. You are trying to pcolor() a scalar value, which is not allowed.
You probably want
pcolar(abs(E))
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!