Разреженные матрицы есть смысл применять, если в данных более 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.