Преобразование типов MATLAB в COM-типы

Типы данных для аргументов и возвращаемые значения функций сервера выражаются как типы данных Автоматизации, которые являются не зависящими от языка типами, определенными протоколом Автоматизации. Для примера, BSTR является широкосимвольным строковым типом, заданным как тип Автоматизации, и является тем же форматом данных, который используется в Visual Basic® язык для хранения строк. Любой COM-совместимый клиент должен поддерживать эти типы данных, хотя сведения о том, как вы объявляете и манипулируете этими типами, зависят от клиента.

В этой таблице показано, как MATLAB® преобразует данные из MATLAB в COM-типы.

Тип MATLABБлижайший COM-типРазрешенные типы
указательVT_DISPATCH
VT_UNKNOWN
VT_DISPATCH
VT_UNKNOWN
вектор символов VT_BSTRVT_LPWSTR
VT_LPSTR
VT_BSTR
VT_FILETIME
VT_ERROR
VT_DECIMAL
VT_CLSID
VT_DATE
int16 VT_I2VT_I2
uint16VT_UI2VT_UI2
int32VT_I4VT_I4
VT_INT
uint32VT_UI4VT_UI4
VT_UINT
int64VT_I8VT_I8
uint64VT_UI8VT_UI8
singleVT_R4VT_R4
double VT_R8VT_R8
VT_CY
logicalVT_BOOL VT_BOOL
char VT_I1VT_I1
VT_UI1

Варианты данных

variant - любой тип данных, кроме структуры или разреженного массива. (Для получения дополнительной информации см. «Фундаментальные классы MATLAB».)

При использовании в качестве входного параметра MATLAB обработок variant и вариант (pointer) точно так же.

Если вы передаете пустой массив ([]) типа doubleMATLAB создает вариант (pointer) установлено на VT_EMPTY. Передача пустого массива любого другого числового типа не поддерживается.

Аргумент MATLABБлижайший COM-типРазрешенные типы
variant VT_VARIANTVT_VARIANT
VT_USERDEFINED
VT_ARRAY
вариант (pointer)VT_VARIANTVT_VARIANT | VT_BYREF

ДАННЫЕ SAFEARRAY

Когда COM-метод идентифицирует SAFEARRAY или SAFEARRAY(указатель), эквивалент MATLAB является матрицей.

Аргумент MATLABБлижайший COM-типРазрешенные типы
SAFEARRAYVT_SAFEARRAYVT_SAFEARRAY
SAFEARRAY(указатель) VT_SAFEARRAYVT_SAFEARRAY | VT_BYREF

VT_DATE данных

Для прохождения VT_DATE введите вход в программу Visual Basic, используйте класс MATLAB COM.date. Для примера:

d = COM.date(2005,12,21,15,30,05);
get(d)
     Value: 7.3267e+005
    String: '12/21/2005 3:30:05 PM'

Используйте now функция для установки Value свойство на номер даты:

d.Value = now;

COM.date принимает те же входные параметры, что и datenum.

Неподдерживаемые типы

MATLAB не поддерживает эти COM-типы.

  • Строковые массивы

  • Структура

  • Разреженный массив

  • Многомерные SAFEARRAYs (больше двух измерений)

  • Свойства только для записи

См. также

Похожие темы