summaryrefslogtreecommitdiff
path: root/CTB/a_mul.m
blob: c1d213008774f1a6aba163fcdb29a78bfd79f437 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function a = a_mul(varargin)
% a = a_mul(varargin)
%
% multiply a number of ABCD matricies
%
% example:
%
% a = a_mul(a1,a2); which is a = a1 * a2;
%
% a = a_mul(a1,a2,a3,a4); which is a = a1 * a2 * a3 * a4;
%
% Reference: David M. Pozar "Microwave Engineering"
%
% Thorsten Liebig <thorsten.liebig@gmx.de>
% Feb. 2013

if nargin<1
    error 'no argument is given'
end

a = varargin{1};

for n=2:numel(varargin)
    a2 = varargin{n};
    for f=1:size(a,3)
        a(:,:,f) = a(:,:,f)*a2(:,:,f);
    end
end