CmaMatrix (maType type)Создание новой, пустой матрицы с типом элементов type. Поле type может содержать комбинацию одного из флагов (MA_DOUBLE, MA_STRING, MA_BOOLEAN и MA_BYTE) для указания типа данных с флагами MA_SPARSE и MA_EVAL. О значение флагов смотри в описании интерфейса ImaMatrix.
Код ошибки:
MA_ERR_NOINTERFACE если не удалось создать компонент (не вызван CoInitialize() или не зарегистрирован maCom)CmaMatrix (maType type, CmaIndex& sizes)Создание новой матрицы с типом элементов _type и размерами, заданными классом sizes. Поле type может содержать комбинацию одного из флагов (MA_DOUBLE, MA_STRING, MA_BOOLEAN и MA_BYTE) для указания типа данных с флагами MA_SPARSE и MA_EVAL. О значение флагов смотри в описании интерфейса ImaMatrix.
Код ошибки:
MA_ERR_NOINTERFACE если не удалось создать компонент (не вызван CoInitialize() или не зарегистрирован maCom)CmaMatrix(maType type,CmaIndex sizes,maString name,int maxSize);Функция позволяет создавать и использовать матрицы, размещенные в разделяемой памяти.
Код ошибки:
MA_ERR_NOINTERFACE если не удалось создать компонент (не вызван CoInitialize() или не зарегистрирован maCom)CmaMatrix (ImaMatrix *matrix);Присоединение класса к интерфейсу уже существующей матрицы.
CmaMatrix (CmaCell &cell);Присоединение класса к интерфейсу матрицы, хранящейся в ячейке cell. Если в ней значение другого типа, то объект не создается.
~CmaMatrix();Уменьшение числа ссылок на интерфейс Intf и уничтожение объекта.
void Resize(CmaIndex sizes);Изменяет размер матрицы на новый, заданный массивом sizes. Все содержимое матрицы при этом теряется.
Код ошибки:
MA_ERR_ACCESS если запрещена запись в матрицуmaType Type();Возвращает тип значений, хранящихся в матрице.
int Dim();Функция возвращает размерность матрицы.
int Size(int dim);Функция возвращает размер матрицы по dim-той размерности.
void Clear();Функция очищает матрицу, заполняя ее пустыми значениями или значениями по умолчанию. Размеры матрицы не меняются.
Код ошибки:
MA_ERR_ACCESS если запрещена запись в матрицуCmaMatrix& operator[] (long i);Добавляет значение i к текущему индексу и возвращает *this. Это позволяет формировать индекс оператором вида "Matrix[2][10]=...".
CmaMatrix& operator[] (CmaIndex& idx);Добавляет сформированный индекс idx к текущему индексу и возвращает *this.
Код ошибки:
MA_ERR_NOMEMORY если idx==NULLCmaMatrix& operator[] (CmaMatrixIterator& idx);Добавляет индекс текущего элемента итератора idx к текущему индексу и возвращает *this.
Код ошибки:
MA_ERR_NOMEMORY если idx==NULLoperator double (); double AsDouble(); int AsInt(); maString AsString();Функции считывают значения по текущему индексу. После вызова текущий индекс очищается.
Код ошибки:
MA_ERR_ACCESS если чтение из матрицы запрещеноdouble operator= (double rvalue); int operator= (int rvalue); maString operator= (maString rvalue);Функции записывают значения по текущему индексу. После вызова текущий индекс очищается.
Код ошибки:
MA_ERR_ACCESS если запись в матрицу запрещенаfalse
.
void SetEmpty();Функция записывает в матрицу пустое значение. Если матрица не поддерживает пустые значения, то вызовы функции игнорируются.
bool IsEmpty();Функция проверяет, будет ли значение ячейки матрицы пустым. Если матрица не поддерживает пустые значения, то функция возвращает false.
void SetEmptyDoubleValue(double value); void SetEmptyStringValue(double value); void SetEmptyLongValue(int value);Функции устанавливают константы, которые играют роль "пустых" значений. Эти константы выдаются, если считываемое из матрицы значение пустое. Эти константы не являются глобальными и их можно изменять в процессе работы с матрицей, при этом пустые значения в матрице остаются пустыми.
По умолчанию эти константы равны NaN для чисел и пустая строка для строк.
Если матрица не поддерживает пустые значения, то вызовы функции игнорируются.
double GetEmptyDoubleValue(); maString GetEmptyStringValue(); int GetEmptyLongValue();Функции возвращают константы, которые играют роль "пустых" значений.
void CacheMatrix(char cacheMode,CmaMatrix& source);Функция позволяет использовать данную матрицу как буфер для матрицы source или отключить буферизацию, если source==NULL. При включении буферизации все данные в матрице уничтожаются и размер матрицы становится равным размеру source. Параметр cacheMode выбирает режим буферизации:
Код ошибки:
MA_ERR_NOMEMORY если при изменении размеров матрицы не удалось выделить память.void Commit();Функция передает данные в/из буферизуемой матрицы. Конкретное действие этой функции зависит от режима буферизации:
void StopCacheing();Очищает указатель на буферизируемую матрицу и уменьшает число ссылок на нее. Эквивалентна вызову CacheMatrix(0,0).
void SetConversionStrings(maConvertStrings strings);
maConvertStrings GetConversionStrings();
void ClearConversionStrings();
CmaIndex sz; CmaMatrix X(MA_DOUBLE, sz[168][7]); for (int i=0; i<X.Size(0); i++) { for (int j=0; j<X.Size(1); j++) { X[i][j] = double(i+j); } }