2017-04-30 26 views
0

行列のサイズが一致しません。私は導電性セグマを持つ媒質中を移動するEm波をシミュレートしようとしています。問題は、私がEフィールドとHフィールドをプロットしようとすると、エラー(マトリックスサイズミスマッチ)が出ます。私は値を変更しようとしましたが、まだ出力はありません。誰かが私にこの問題の解決を手伝ってくれたら。事前のおかげでmatlabの行列サイズが不一致

segma=5 
f=1000 
m=2 
w=2*pi*f ; % Omega 
Eo= 8.854187817*10^12; %vaccum permitivity of air 
y=(1+1i)*sqrt(pi*f*Eo*m*segma); % definning gamma 
a=real(y)% definning alpha 
b=imag(y);% defining beta 
s=1/a;%skin depth 
n=(1+1i)/segma*s;%characteristic impedance 
vp=w*s; % phase velocity 
lambda= 2*pi*s; % wavelength 
t=0:1:100;       % Time for analysis 
z=0:1:100;       % Range of Space under analysis 
Ex=exp(-z*a)*cos(w*t-z*a); % assuming one component in the x-direction propagating in the +z direction . Also we have assumed E+=1 
Hy=Ex/n; % Assuming one component in the y-direction 
subplot(2,1,1) 
plot(z,Ex,'g'); 
xlabel('z(metres)'); 
ylabel('Ex(E)'); 
title('Plane wave propagation in free space medium'); 
subplot(2,1,2) 
plot(z,Hy,'r'); 
xlabel('z(metres)'); 
ylabel('Hy(H)'); 
+0

こんにちは、私はちょうど私があなたの問題を解決したかどうかと思いまして、@ahmed。私が持っていれば、あなたの質問を終わらせるだけでなく、私にクレジットを与えるので、私は親切に答えを受け入れるように頼むことができますか?ありがとうございました。 – Anthony

答えて

0

はあなたのコード:

Ex=exp(-z*a)*cos(w*t-z*a);

exp(-z*a)はあなたに1バイ101行列を与えるとcos(w*t-z*a)は、別の1行101行列を与えます。 element-wise multiplicationを使用する場合は、*の前に.を追加する必要があります。

だから修正は次のとおりです。

Ex=exp(-z*a).*cos(w*t-z*a);

enter image description here

+0

ありがとうございますが、私は新しい問題に直面しています。プロット関数は、虚数部を無視している、私はそれらを無視するmatlabを必要はありません。 – ahmed

+0

@ahmed私はあなたのグラフをどのようにしたいのか分かりませんが、この 'plot(z、real(Hy)、 'r'、z、imag(Hy)、 'r');'を試してみてください。 – Anthony

+0

ありがとうございます。磁場(H)がプロットされたとき、チャーラックを含む虚数部のために電場(E)から位相がずれていなければなりません。インピーダンスn。 matlabがimagを無視するとき。彼らはお互いに同相で現れる。あなたが私に提供した解決策は、Hを2つの行として間違ってプロットしています。ありがとうございます – ahmed

関連する問題