Why do I get the error message, 'Error using j, Too Many Input/Output Arguments' when I try to execute a function ? I try to combine 21 layer matrice which is 2 by 2. Here is my code. Frequency must change between 300Thz and 500Thz.
1 view (last 30 days)
Show older comments
function [m11_a,m12_a,m21_a,m22_a] = layer_a(f);
N_a=2.5;
delta_za=450e-9;
k=N_a.*(2*pi.*f/3e8);
q_a=-k./(2*pi*f*4*pi*10e-7);
m11_a=cos(k.*delta_za);
m12_a=((i)./q_a).*sin(k.*delta_za);
m21_a=(i.*q_a).*sin(k.*delta_za);
m22_a=cos(k.*delta_za);
end
----------------------------------------------------------------------------------------------------------------------
function [m11_b,m12_b,m21_b,m22_b] = layer_b(f);
N_b=1.5;
delta_zb=400e-9;
k=N_b.*(2*pi.*f/3e8);
q_b=-k./(2*pi.*f*4*pi*10e-7);
m11_b=cos(k.*delta_zb);
m12_b=(i./q_b).*sin(k.*delta_zb);
m21_b=(i.*q_b).*sin(k.*delta_zb);
m22_b=cos(k.*delta_zb);
end
----------------------------------------------------------------------------------------------------------------------
function [m11,m12,m21,m22]=multiplication(m11_a,m12_a,m21_a,m22_a,m11_b,m12_b,m21_b,m22_b);
m11=m11_a.*m11_b+m12_a.*m21_b;
m12=m11_a.*m12_b+m12_a.*m22_b;
m21=m21_a.*m11_b+m22_a.*m21_b;
m22=m21_a.*m12_b+m22_a.*m22_b;
end
----------------------------------------------------------------------------------------------------------------------
function[m11,m12,m21,m22] = ab_multiplication(m11,m12,m21,m22)
[m11,m12,m21,m22]=multiplication(m11,m12,m21,m22,m11,m12,m21,m22);
end
----------------------------------------------------------------------------------------------------------------------
function [m11_n,m12_n,m21_n,m22_n]= Nemativ_liquid_crystal(f)
N_n=1.76;
delta_zn=1e-6;
k=N_n.*(2*pi.*f/3e8);
q_n=-k./(2*pi.*f*4*pi*10e-7);
m11_n=cos(k.*delta_zn);
m12_n=(i./q_n).*sin(k.*delta_zn);
m21_n=(i.*q_n).*sin(k.*delta_zn);
m22_n=cos(k.*delta_zn);
end ---------------------------------------------------------------------------------------------------------------------- f=3e14:1e12:5e14;
n=20;
[m11_a,m12_a,m21_a,m22_a] = layer_a(f);
[m11_b,m12_b,m21_b,m22_b] = layer_b(f);
[m11_n,m12_n,m21_n,m22_n]= Nemativ_liquid_crystal(f);
[m11,m12,m21,m22]=multiplication(m11_a,m12_a,m21_a,m22_a,m11_b,m12_b,m21_b,m22_b);
for r=1:5
[m11,m12,m21,m22] = ab_multiplication(m11,m12,m21,m22);
end
[m11_,m12_,m21_,m22_]=multiplication(m11_b,m12_b,m21_b,m22_b,m11_a,m12_a,m21_a,m22_a);
for r=1:5
[m11_,m12_,m21_,m22_] = ab_multiplication(m11_,m12_,m21_,m22_);
end
[m11,m12,m21,m22]=multiplication(m11,m12,m21,m22,m11_n,m12_n,m21_n,m22_n);
[m11,m12,m21,m22]=multiplication(m11,m12,m21,m22,m11_,m12_,m21_,m22_);
t(f)=2./((m11+m22)+j(m12-m21));
plot(f,t) ----------------------------------------------------------------------------------------------------------------------
*My aim is try to combine this matrices which has different refractive indices. And as a result i have to take the graphic which has two parameters transmission coefficients(denoted as t(f) in the code) and frequency. This is too important for my project.
Thank you for your help..
Best regards.. *
0 Comments
Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!