Для создания сервера необходим программный идентификатор (ProgID) для идентификации сервера. MATLAB ® имеет ProgID для общих и выделенных серверов. Эти идентификаторы являются либо зависящими от версии, либо независимыми от версии.
Для общих серверов используются следующие ProgID MATLAB:
Matlab.Application - Запуск сервера автоматизации в командном окне с версией MATLAB, которая была недавно использована в качестве сервера автоматизации (которая может не быть последней установленной версией MATLAB)
Matlab.Autoserver - Запуск сервера автоматизации командного окна с использованием последней версии MATLAB
Matlab.Desktop.Application - Запуск полного рабочего стола MATLAB в качестве сервера автоматизации с использованием последней версии MATLAB
ProgID для выделенных серверов:
Matlab.Application.Single
Matlab.Autoserver.Single
Эти независимые от версии ProgID MATLAB определяют текущую зарегистрированную версию MATLAB.
Для создания экземпляра определенной зарегистрированной версии MATLAB можно использовать зависящий от версии ProgID. Например, Matlab.Application.7.14 создает экземпляр MATLAB версии 7.14 (R2012a).
Клиентское приложение устанавливает соединение с сервером MATLAB. Способ создания подключения зависит от языка клиентской программы. Для получения этой информации обратитесь к документации по языку. Возможные варианты:
Клиент C #:
mlType = Type.GetTypeFromProgID("Matlab.Application");
matlab = Activator.CreateInstance(mlType);
где mlType и matlab определяются как:
public static Type mlType; public static Object matlab;
Клиент Visual Basic ® .NET:
MatLab = CreateObject("Matlab.Application")где MatLab определяется как:
Dim MatLab As Object
Клиент VBA:
Set MatLab = CreateObject("matlab.application")где MatLab определяется как:
Dim MatLab As Object
Этот код Microsoft ® Visual Basic .NET запускает MATLAB как сервер автоматизации COM в режиме полного рабочего стола с помощью ProgIDMatlab.Desktop.Application.
Dim MatLab As Object
Dim Result As String
MatLab = CreateObject("Matlab.Desktop.Application")
Result = MatLab.Execute("surf(peaks)")
Не всегда необходимо создавать новый экземпляр сервера MATLAB. Клиенты могут подключаться к существующему серверу MATLAB Automation с помощью языковых команд. Например, этот пример Visual Basic .NET подключается к существующему серверу MATLAB, а затем выполняет команду печати на сервере.
Dim h As Object
h = GetObject(, "matlab.application")
h.Execute ("plot([0 18], [7 23])")Примечание
Используйте GetObject показан синтаксис, в котором отсутствует первый аргумент.
Кроме того, можно указать запущенный сеанс MATLAB в качестве COM-сервера. Дополнительные сведения см. в разделе Создание сервера автоматизации вручную.
Вы можете сделать MATLAB видимым на рабочем столе, установив Visible собственность. Когда MATLAB отображается на рабочем столе, позволяя пользователю взаимодействовать с ним. Это может быть полезно для таких целей, как отладка. Visible активировано свойство (установлено значение 1) по умолчанию.
Если окно MATLAB не отображается, это предотвращает взаимодействие с приложением. Чтобы скрыть рабочий стол, установите Visible свойство для 0.
Этот код Visual Basic .NET показывает, как отключить Visible собственность.
Dim MatLab As Object
MatLab = CreateObject("matlab.application")
MatLab.Visible = 0