function deg=dms2deg(dd,mm,ss)
%Перевод угла, заданного в градусах (часах), минутах и
%секундах, в доли градусов (часов)
%
%Вызов:	deg=dms2deg(dd,mm,ss);
%
%Входные параметры:
%   dd - градусы (часы);
%   mm - минуты;
%   ss - секунды;
%
%Выходные параметры:
%  deg - угол в долЯх градусов (или часов);
%
%Знак первого ненулевого аргумента определЯет знак угла на
%выходе.

% Sergey Khomutov,  08.05.97,  Novosibirsk
% 31.08.2006 - сделан ввод матрицей и без ввода минут и секунд


if nargin==1,
    [n,m]=size(dd);
    switch m,
        case 2;
            mm=dd(:,2); dd=dd(:,1);
        case 3;
            ss=dd(:,3); mm=dd(:,2); dd=dd(:,1);
    end
elseif nargin==2;
    ss=zeros(length(dd),1);
end

dd=dd(:); mm=mm(:); ss=ss(:); % превращаем в столбцы

k=any([sign(dd) sign(mm) sign(ss)]'<0)';  % ищем отрицат. углы

deg=(abs(dd)+abs(mm)/60+abs(ss)/3600);
deg(k)=-deg(k);                           % учет отрицат.углов
