function [c_mean,n_good]=one_minute_mean_lost(t_min0,t,c,W,p_lost);
% Вычисление средневзвешенного минутного значения с заданным
% уровнем допустимых потерь
%
% Вызов:    [c_mean,[n_good]]=one_minute_mean_lost(t_min0,t,c,W,p_lost)
%
% t_min0 - минута, длЯ которой ведутсЯ вычислениЯ
%      t - моменты измерениЯ (в минутах)
%      c - измеренные значениЯ
%      W - веса длЯ усреднениЯ (длЯ 1-сек данных)
% p_lost - допустимая доля пропущенных данных (например, 0.50)
%           0 - пропуски не допускаются
%           1 - допустимо любое кол-во пропусков
%
% c_mean - средневзвешенное значение
% n_good - количество обработанных данных

% 11.06.2008    С.Ю.Хомутов
%    оптимизировано вычисление средневзвешенной суммы при неполных данных

t=t(~isnan(c)); c=c(~isnan(c));

if isempty(t),      % нет нормальных данных
    c_mean=NaN; n_good=0;
    return
end

ts0=(t_min0*60-45:t_min0*60+45)';   % равномернаЯ шкала времени в сек
[kc,kw]=ismember_digit(round(t*60),ts0,8);  % выбираем данные для общих моментов
if sum(kc)~=sum(kw),                % что-то со временем (дублир. моменты?)
    [hh,mm,ss,str]=deg_dms(t_min0/60);disp(str)
    error('!!! Проблемы со временем !!!')
end
if (length(W)-sum(kw)) > fix(length(W)*p_lost)    % кол-во потерянных > допустимого
    c_mean=NaN; n_good=length(c);
else
    c_mean=sum(c(kc).*W(kw))/sum(W(kw));
    n_good=sum(kw);
end
