function obj = komplex(varargin)

%@komplex/komplex - konstruktor tridy 'komplex' = KOMPLEXNI CISLO
%volani:     c = komplex();         c = 0+0i;
%               c = komplex([2 1]);   c = 2+1i
%               c = komplex(-2.5);    c = -2.5+0i
%               c = komplex(3,-1);    c = 3-1i
%               c = komplex(c2);  kopirovaci konstruktor
% vstupem konstruktoru jsou REALNA cisla!!


if nargin==0
    obj.real = 0;   %realna cast
    obj.imag = 0;   %imaginarni cast
    
elseif nargin == 1  %vstupem je vektor nebo realne cislo
    v = varargin{1};
    if isa(v,'komplex')    %test, zda neni jiz vstupem objekt
        obj = v;    %kopirovaci konstruktor
        return  %predcasne koncim
    elseif length(v)==2  && all(isreal(v)) %'v' je vektor 2 realnych cisel
        obj.real = v(1);    %realna cast
        obj.imag = v(2);    %imaginarni cast
    elseif length(v)==1 && isreal(v)    %mam jedno realne cislo
       obj.real = v;    %realna cast
        obj.imag = 0;    %imaginarni cast 
    else
        error('Zadejte realne cislo nebo vektor 2 realnych cisel!')
    end
    elseif nargin == 2
        c1=varargin{1};
        c2=varargin{2};
        if isreal(c1) && isreal(c2) && isscalar(c1) && isscalar(c2)
            obj.real = c1;
            obj.imag = c2;
        else
            error('Zadejte 2 realna cisla (ne vektory, ne komplexni cisla!')
        end
else  %konstruktor dostal vic nez dva vstupy
    error('Chybny pocet vstupu! Prectete si napovedu...help komplex!')
end

obj = class(obj, 'komplex');        %ze struktury udelame objekt

           
        