mexhost

Создайте хост-процесс для функции C++ MEX

Описание

пример

mh = mexhost создает хост-процесс MEX, который используется для запуска функций C++ MEX. Имя процесса по умолчанию MATLABMexHost.

Используйте feval метод matlab.mex.MexHost объект вернулся к выполнению функций C++ MEX в процессе хоста MEX.

пример

mh = mexhost("EnvironmentVariables",envVariables) устанавливает переменную окружения со значениями, заданными в envVariables для процесса.

Примеры

свернуть все

Создайте хост-процесс и запустите функцию C++ MEX в этом процессе.

The arrayProduct.cpp C++ Файл MEX содержит исходный код для функции, которая умножает массив на скаляр вход и возвращает полученный массив. Откройте этот файл и сохраните его на своем MATLAB® путь. Создайте исходный файл C++ MEX с помощью mex команда. Чтобы настроить сборку MEX, следуйте инструкциям в Build C++ MEX Programs.

mex arrayProduct.cpp

Создайте хост-процесс. mexhost функция возвращает matlab.mex.MexHost объект.

mh = mexhost;

Используйте feval метод matlab.mex.MexHost объект для вычисления функции C++ MEX в процессе хоста.

result = feval(mh,"arrayProduct",10,[2,4,6,8])
result =

    20    40    60    80

Можно использовать MexHost объект, чтобы найти идентификатор процесса, созданный mexhost функция.

mh = mexhost;
mh.ProcessIdentifier
ans = 
    "13336"

Каждый вызов на mexhost создает процесс.

Установите значение переменного окружения envName1 на envVal1 и значение переменной envName2 на envVal2.

s = ["envName1","envVal1"
     "envName2","envVal2"];
mh = mexhost("EnvironmentVariables",s)
mh = 

  MexHost with properties:

             ProcessName: "MATLABMexHost"
       ProcessIdentifier: "19344"
               Functions: [0×0 string]
    EnvironmentVariables: "envName1"    "envVal1"
                          "envName2"    "envVal2"

Входные параметры

свернуть все

Окружение переменные и значения, заданные как строковые массивы n на 2. Символы, отличные от ASCII, не поддерживаются. Первый столбец является именем переменного окружения, а второй - значением.

Выходные аргументы

свернуть все

Хост-процесс, возвращенный как matlab.mex.MexHost объект. Используйте этот процесс для запуска функции C++ MEX вне процесса MATLAB.

Подробнее о

свернуть все

Жизненный цикл процесса

MATLAB завершает процесс, когда объект возвращается mexhost уничтожается. MATLAB уничтожает объект, когда происходит любое из следующих событий.

  • Переменная хоста MEX, возвращенная mexhost выходит за пределы возможностей, в результате чего MATLAB уничтожает объект.

  • The delete метод вызывается для переменной хоста MEX явным образом.

  • clear вызывается функция для переменной хоста MEX, и других ссылок на объект нет.

  • clear вызывается функция с любым из следующих опций: clear java, clear classes, или clear all.

Выгрузка MEX-функций C++

Чтобы выгрузить все функции C++ MEX из процессов хоста, вызовите clear mex или clear functions. Чтобы выгрузить определенную функцию C++ MEX, все процессы хоста, выполняющие ее, вызывайте clear по имени функции. Для получения дополнительной информации смотрите clear function и Out-of-Process Выполнение C++ MEX-функции.

Введенный в R2019a