Sort(Coord: IMatrixModelCoord; Ascending: Boolean);
Coord. Координата в измерении, по которой берется срез. По значениям среза будет осуществляться сортировка;
Ascending. Параметр, определяющий направление сортировки.
Метод Sort осуществляет сортировку матрицы в зависимости от значений содержащихся в срезе Coord.
Если параметру Ascending установлено значение True, то сортировка осуществляется по возрастанию значений.
В результате работы метода координаты элементов матрицы переставляются таким образом, чтобы значения, расположенные в срезе Coord, были упорядочены в зависимости от направления сортировки, указанного в параметре Ascending.
Примечание. Данный метод поддерживается только для матриц, созданных с помощью языка Fore и являющихся объектами класса Matrix. Метод нельзя применять для матриц, полученных при вычислении объектов платформы (результирующие матрицы кубов, матрицы, полученные при работе в контейнере моделирования или базе данных временных рядов, матрицы срезов в регламентных отчетах).
Добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
M: Matrix[2];
Mm: IMatrixModel;
C: IMatrixModelCoord;
I, J: Integer;
Begin
Debug.WriteLine("Исходная матрица");
For i := 0 To 3 Do
For j := 0 To 3 Do
M[i, j] := Math.RandBetweenI(0, 9);
Debug.Write(M[i, j] + " ");
End For;
Debug.WriteLine("");
End For;
Mm := M As IMatrixModel;
C := Mm.CreateModelCoord;
C.Item(0) := 0; // Для сортировки столбцов по значениям первой строки
//C.Item(1) := 3; // Для сортировки строк по значениям четвертого столбца
Mm.Sort(C, True);
Debug.WriteLine("");
Debug.WriteLine("Отсортированная матрица");
For i := 0 To 3 Do
For j := 0 To 3 Do
Debug.Write(M[i, j] + " ");
End For;
Debug.WriteLine("");
End For;
End Sub UserProc;
При выполнении примера создается двухмерная матрица, содержащая случайные целочисленные значения. Столбцы матрицы будут отсортированы таким образом, чтобы значения в первой строке были расположены по возрастанию.
См. также: