Создать новую матрицу можно с помощью компонента MaMatrixFactory с интерфейсом ImaMatrixFactory. Интерфейс содержит единственную функцию
HRESULT Create([in] maType type,[out,retval] ImaMatrix** intf)Создание новой, пустой матрицы с типа type. Поле type может содержать комбинацию одного из флагов (MA_DOUBLE, MA_STRING,MA_LONG, MA_BOOLEAN и MA_BYTE) для указания типа данных с флагами MA_SPARSE и MA_EVAL. Возвращает указатель на созданную матрицу или NULL, если матрица с таким типом не может быть создана.
Не все комбинации флагов поддерживаются. Возможные типы матриц представлены в таблице.
Флаг MA_SPARSE | Флаг MA_EVAL | Возможные значения флага типа | примечание |
Нет | Нет | Любой | Обычная 'плотная' матрица |
Да | Нет | MA_DOUBLE и MA_STRING | Разреженная матрица |
Нет | Да | Любой | Вычисляемая матрица. При чтении значения из нее обращается к функции CalcCell метода, в котором эта матрица является выходным параметром. Запись в такую матрицу запрещена. |
Да | Да | В разработке | Вычисляемая матрица. При первом чтении значения из нее обращается к функции CalcCell метода, в котором эта матрица является выходным параметром и сохраняет его. При повторном чтении того же элемента используется сохраненное значение. Запись в такую матрицу запрещена. |