IMissingData.SpecifiedVector

Синтаксис Fore

SpecifiedVector: Array;

Синтаксис Fore.NET

SpecifiedVector: System.Array;

Описание

Свойство SpecifiedVector определяет дополнительный параметр для методов обработки пропусков «По шаблону» (MissingDataMethod.Pattern) и «Значениями заданного ряда» (MissingDataMethod.Overlay).

Комментарии

Для данных методов свойство SpecifiedVector определяет ряд, на основании которого будут заполняться пропуски в моделируемом ряду.

Для других методов обработки пропусков данное свойство неактуально.

Пример Fore

Для выполнения примера добавьте ссылку на системную сборку «Stat».

Sub UserProc;
Var
    FillGaps: SmFillGapsProcedure;
    Series: ISlSeries;
    serie, OverlaySerie: Array[10Of Double;
    MD: IMissingData;
    // Процедура вывода данных
    Sub Print(Data: Array Of Double);
    Var
        i: Integer;
    Begin
        Debug.Indent;
        For i := 0 To Data.Length - 1 Do
            If Double.IsNan(Data[i]) Then
                Debug.WriteLine("----empty---");
                Else
                    Debug.WriteLine(i.ToString + " " + Data[i].ToString);
            End If;
        End For;
        Debug.Unindent;

    End Sub Print;
Begin
    FillGaps := New SmFillGapsProcedure.Create;
    // Моделируемый ряд
    serie[0] := 0;
    serie[1] := 0;
    serie[2] := 0.878471616;
    serie[3] := 0.85401205;
    serie[4] := Double.Nan;
    serie[5] := 1.28083579;
    serie[6] := Double.Nan;
    serie[7] := 4.237308214;
    serie[8] := 4.864879297;
    serie[9] := 7.765499027;
    Series := FillGaps.InputSeries;
    Series.Add.Value := serie;
    // Ряд, из которого будут браться значения для заполнения пропусков
    OverlaySerie[0] := 0;
    OverlaySerie[1] := 1;

    OverlaySerie[2] := 2;
    OverlaySerie[3] := 3;
    OverlaySerie[4] := 4;
    OverlaySerie[5] := 5;
    OverlaySerie[6] := 6;
    OverlaySerie[7] := 7;
    OverlaySerie[8] := 8;
    OverlaySerie[9] := 9;
    Series := FillGaps.InputSeries;
    Series.Add.Value := serie;
    MD := FillGaps.MissingData;
    // Метод ообработки пропусков
    MD.Method := MissingDataMethod.Overlay;
    // Дополнительный параметр для методов обработки пропусков «Значениями заданного ряда»
    MD.SpecifiedVector := OverlaySerie;
    Debug.WriteLine("Исходный ряд");
    Print(Series.Item(0).Value);
    FillGaps.Execute;
    Debug.WriteLine("Полученный ряд");
    Print(Series.Item(0).Value);
End Sub UserProc;

После выполнения примера в окно консоли будет выведен исходный ряд и ряд, рассчитанный методом обработки пропусков «Значениями заданного ряда».

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Print(Data: System.Array);
Var
    i: Integer;
Begin
    System.Diagnostics.Debug.Indent();
    For i := 0 To Data.Length - 1 Do
        If Double.IsNan(Data.GetValue(i) As double) Then
            System.Diagnostics.Debug.WriteLine("---empty---");
        Else
            System.Diagnostics.Debug.WriteLine(i.ToString() + " " + Data.GetValue(i));
        End If;
    End For;
    System.Diagnostics.Debug.Unindent();

End Sub Print;
    
Public Shared Sub Main(Params: StartParams);
Var
    FillGaps: SmFillGapsProcedure;
    Series: ISlSeries;
    serie, OverlaySerie: Array[10Of Double;
    MD: IMissingData;
Begin
    FillGaps := New SmFillGapsProcedure.Create();
    // Моделируемый ряд
    serie[0] := 0;
    serie[1] := 0;
    serie[2] := 0.878471616;
    serie[3] := 0.85401205;
    serie[4] := Double.Nan;
    serie[5] := 1.28083579;
    serie[6] := Double.Nan;
    serie[7] := 4.237308214;
    serie[8] := 4.864879297;
    serie[9] := 7.765499027;
    Series := FillGaps.InputSeries;
    Series.Add().Value := serie;
    // Ряд, из которого будут браться значения для заполнения пропусков
    OverlaySerie[0] := 0;
    OverlaySerie[1] := 1;

    OverlaySerie[2] := 2;
    OverlaySerie[3] := 3;
    OverlaySerie[4] := 4;
    OverlaySerie[5] := 5;
    OverlaySerie[6] := 6;
    OverlaySerie[7] := 7;
    OverlaySerie[8] := 8;
    OverlaySerie[9] := 9;
    Series := FillGaps.InputSeries;
    Series.Add().Value := serie;
    MD := FillGaps.MissingData;
    // Метод ообработки пропусков
    MD.Method := MissingDataMethod.mdmOverlay;
    // Дополнительный параметр для методов обработки пропусков «Значениями заданного ряда»
    MD.SpecifiedVector := OverlaySerie;
    System.Diagnostics.Debug.WriteLine("Исходный ряд");
    Print(Series.Item[0].Value);
    FillGaps.Execute();
    System.Diagnostics.Debug.WriteLine("Полученный ряд");
    Print(Series.Item[0].Value);
End Sub;

См. также:

IMissingData