function C = subsasgn(C,S,B)
% @komplex/subsasgn - zmena polozek objektu tridy KOMPLEX
% C = subsasgn(C,S,B)
% C(1) = B, resp. C(2) = B % zmena realne nebno imag. casti
% C.re = B, resp. C.im = B % zmena realne nebno imag. casti

if (~isa(C,'komplex'))
    error('Prvni vstup musi byt objekt!')
end
if (~isscalar(B) || ~isreal(B)) % B je chybne
    error('Hodnotu nelze priradit - zadejte REALNE cislo!')
end
% podle druhu indexu zmenime data objektu:
switch (S.type)
    case '()' % prvni zpusob indexace ... pouze C(1) nebo C(2)
        index = S.subs{1}(1);
        if (index==1)
            C.real = B;
        elseif (index==2)
            C.imag = B;
        else
            error('Nepovoleny index!')
        end
    case '{}'
        error('Nepovoleny pristup pomoci {}!')
    case '.' % indexace pomoci tecky ... C.re nebo C.im
        index = S.subs;
        if (strcmp(index,'re'))
            C.real = B;
        elseif (strcmp(index,'im'))
            C.imag = B;
        else
            error('Nepovoleny nazev polozky!')
        end
end