Разреженные матрицы есть смысл применять, если в данных более 80% пропусков. Подробнее о работе с разреженными матрицами смотри интерфейс ImaSparseMatrix.

    constructor Create();

Создание новой, пустой матрицы.

    constructor Create(matrix:ImaSparseMatrix);

Присоединение класса к интерфейсу уже существующей матрицы.

    constructor Create(cell:TmaCell);

Присоединение класса к интерфейсу матрицы, хранящейся в ячейке cell. Если в ней значение другого типа, то объект не создается.

    procedure Clear;

Удалает все данные из матрицы.

    procedure Add(row: Integer; col: Integer; val: Double);

Добавляет значение в матрицу. Строки и столбцы считаются с нуля. После добавления значений и перед работой с матрицей необходимо вызвать CreateIndex().

    procedure CreateIndex;
    procedure DeleteIndex;

Функции для создания и удаления индекса. Индекс надо создавать после изменения данных.
Функции интерфейса позволяют обрабатывать элементы матрицы в трех последовательнстях: в порядке ввода, по строкам и по столбцам. Соответственно функции делятся на три группы.
Функции для обработки элементов в порядке поступления

    function  ElemCount: Integer;

Функция возвращает общее число (непустых) элементов в матрице.

    function  Elem(i: Integer): Double;

Функция возвращает элемент матрицы по номеру в порядке поступления.

    function  ElemIndex(i: Integer; Dim: Integer): Integer;
    function  ElemNo(i: Integer; Dim: Integer): Integer;

Функции возвращают соответственно индекс и номер элемента с порядковым номером i по строке (dim=0) или по столбцу (dim=1).
Функции для обработки элементов по строкам.

    function  Rows: Integer;

Возвращает число непустых строк в матрице.

    function  RowSize(row: Integer): Integer;

Возвращает число непустых элементов в строке row (0<=row< Rows).

    function  Row(row: Integer; i: Integer): Double;

Выдает элемент строки с номером i.

    function  RowIndex(row: Integer): Integer;

Выдает индекс строки с номером row.

    function  RowElemIndex(row: Integer; i: Integer): Integer;

Возвращает индекс по столбцам элемента строки row с номером i.

    function  RowElemNo(row: Integer; i: Integer): Integer;

Возвращает номер по строкам элемента столбца col с номером i.
Функции для обработки элементов по столбцам.
Эти функции аналогичны функциям предыдущей группы.

    function  Cols: Integer;

Возвращает число непустых столбцов в матрице.

    function  ColSize(col: Integer): Integer;

Возвращает число непустых элементов в столбце col.

    function  Col(col: Integer; i: Integer): Double;

Выдает элемент столбца с номером i.

    function  ColIndex(col: Integer): Integer;

Выдает индекс столбца с номером col.

    function  ColElemIndex(col: Integer; i: Integer): Integer;

Возвращает индекс по строкам элемента столбца col с номером i.

    function  ColElemNo(col: Integer; i: Integer): Integer;

Возвращает номер по строкам элемента столбца col с номером i.