Vectors must be the same length.
1 回表示 (過去 30 日間)
古いコメントを表示
theta=30:0.01:50;
lambda=633;
k0=2*pi/lambda;
e1=1.50^2;e3=1.33^2;e2=(0.12+1i*3.5)^2;
n1=1.50;n3=1.33;n2=0.12+1i*3.433;
d2=50;
n1=1.50;
x=n1*sind(theta);
k1=k0.*sqrt(e1.*mu1-x.^2);
k2=k0.*sqrt(e2.*mu2-x.^2);
k3=k0.*sqrt(e3.*mu3-x.^2);
q1=sqrt(e1-x.^2)./e1;
q2=sqrt(e2-x.^2)./e2;
q3=sqrt(e3-x.^2)./e3;
p=k2.*d2;
m111=cosd(p);
m112=-1i.*sind(p)./q2;
m121=-1i*q2.*sind(p);
m122=cosd(p);
Mtot=zeros(1,length(theta));
for j=1:length(theta)
M1=[m111(1,j),m112(1,j);m121(1,j),m122(1,j)];
Mtot=M1;
R(j) =((Mtot(1,1) +Mtot(1,2).*q3).*q1-Mtot(2,1) -Mtot(2,2).*q3)/(((Mtot(1,1) +Mtot(1,2).*q3).*q1+Mtot(2,1) +Mtot(2,2).*q3)).^2;
end
figure(1);
plot(theta,abs(R));
xlabel('incident angle');
ylabel('transmmission, s-pol');
plot is not showing any value error
Vectors must be the same length. pl help to plot
7 件のコメント
回答 (1 件)
Walter Roberson
2022 年 1 月 27 日
Is it possible that you ran this code twice with more theta values the first time? You are not preallocating R so if you ran multiple times R would exist with the previous size.
It would be a good idea to preallocate R in your code.
14 件のコメント
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!