Класс реализует поэлементный просмотр матрицы. Подробнее смотри в интерфейсе ImaMatrix

###### Свойства и функции класса TmaMatrix

- constructor Create(source:TmaMatrix)
- destructor Destroy
- function First:boolean
- function Next:boolean
- property Completed:boolean
- property CurIndex:maIndex
- property Dims[dimno:integer]:integer; default
- property AsDouble: Double
- property AsLong: Integer
- property AsString: WideString

Пример

- Вывод всех непустых элементов матрицы с их координатами и преобразование матрицы

    constructor Create(source:TmaMatrix)

Создание итератора для матрицы source и чтение первого индекса.

Параметры:

source матрица, для которой создается итератор

    destructor Destroy

Удаление итератора.

    function First:boolean

Возврат к началу массива и чтение первого элемента.

Возвращаемое значение:

True, если элемент найден и false, если матрица пустая.

    function Next:boolean

Чтение к следующего элемента массива.

Возвращаемое значение:

True, если элемент найден и false, если нет больше элементов.

    property Completed:boolean

Свойство только для чтения. Возвращает true, если достигнут конец просмтора и false иначе.

    property CurIndex:maIndex

Свойство только для чтения. Позволяет получить координаты текущего элемента массива целиком.

    property Dims[dimno:integer]:integer; default

Свойство только для чтения. Позволяет получить dimno-тую координату текущего элемента массива. Это свойство - свойство по умолчанию.

    property AsDouble: Double
    property AsLong: Integer
    property AsString: WideString

Эти свойства позволяют прочитать или установить значение в текущей ячейке матрицы.

Пример.

Чтение разреженной матрицы из файла, Вывод всех непустых элементов матрицы с их координатами и преобразование матрицы.

    var
      X: TmaMatrix;
      S: TmaStream;
      I: TmaMAtrixIterator;

    ...
      S := TmaStream.Create(MA_FILE_READ + MA_FILE_WRITE + MA_FILE_TEXT,
        'test.txt',true{Разреженная});
      X := S.ReadMatrix;
      I := TmaMatrixIterator.Create(X);
      while not I.Completed do begin

        S.WriteLong(I[0]); S.WriteLong(I[1]);
        S.WriteDouble(I.AsDouble);
        I.AsDouble := I.AsDouble * 2;

        I.Next;
      end;