exponenta event banner

mexhost

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

Описание

пример

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

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

пример

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

Примеры

свернуть все

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

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

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-by-2. Символы, не относящиеся к ASCII, не поддерживаются. Первый столбец является именем переменной среды, а второй столбец - значением.

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

свернуть все

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

Подробнее

свернуть все

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

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

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

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

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

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

Выгрузить функции C++ MEX

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

Представлен в R2019a