-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMMatrixOfStructure.m
More file actions
23 lines (22 loc) · 864 Bytes
/
MMatrixOfStructure.m
File metadata and controls
23 lines (22 loc) · 864 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function [M, tetta2] = MMatrixOfStructure(tetta0, lambda, varargin)
%MMatrixOfStructure return M matrix of structure
% tetta0 - angle of incident
% lambda - wavelength
% varargin: couples of refractive indexes and thiknesses of films
if max(size(varargin)) < 2
error('not enough input argument')
elseif max(size(varargin)) == 2
tetta2 = tetta0;
M = MTransmittance(varargin{1}, varargin{2}, lambda, tetta0);
elseif max(size(varargin)) == 3
M1 = MTransmittance(varargin{1}, varargin{2}, lambda, tetta0);
[M2, tetta2] = MReflectance(varargin{1}, varargin{3}, tetta0);
M = M1 * M2;
else
M1 = MTransmittance(varargin{1}, varargin{2}, lambda, tetta0);
[M2, tetta1] = MReflectance(varargin{1}, varargin{3}, tetta0);
varargin(1:2) = [];
[M3, tetta2] = MMatrixOfStructure(tetta1, lambda, varargin{:});
M = M1 * M2 * M3;
end
end