Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.
Nota
La API de MEX de C++ no es compatible con el. No puede mezclar estas API en un archivo MEX.
La API de MEX de C++ le permite crear aplicaciones que aprovechan las características de C++ 11, como la semántica de movimiento, el control de excepciones y la administración de memoria.
matlab::mex::Function | Clase base para funciones MEX de C++ |
matlab::mex::ArgumentList | Contenedor para entradas y salidas de funciones de C++ MEX |
matlab::engine::MATLABEngine | API de motor de definición de clase |
matlab::mex::Function
Todas las implementaciones de archivos MEX son clases derivadas de.matlab::mex::Function
std::shared_ptr<matlab::engine::MatlabEngine> getEngine() | Obtenga el puntero al objetoMATLABEngine |
void mexLock() | Evitar la limpieza del archivo MEX de la memoria |
void mexUnLock() | Permitir la limpieza del archivo MEX de la memoria |
std::u16string getFunctionName() | Obtenga el nombre de la función MEX actual |
matlab::mex::ArgumentList
Los argumentos de la función MEX pasados a través de la clase son contenedores. es una gama completa de la colección subyacente de matrices.operator()
MexFunction
matlab::mex::ArgumentList
ArgumentList
El objeto admite las siguientes funciones.ArgumentList
operator[] | Permite la indexación en los elementos de un.[] ArgumentList |
begin() | Iniciar iterador. |
end() | Iterador final. |
size() | Devuelve el número de elementos de la lista de argumentos. Utilice esta función para comprobar el número de entradas y salidas especificadas en el sitio de llamada. |
empty() | Devuelve un valor lógico que indica si la lista de argumentos está vacía ().size() == 0 |
Acceda a funciones, variables y objetos mediante la API descrita en las secciones siguientes.MATLAB®matlab::engine::MATLABEngine
Para llamar a las funciones, obtenga un puntero compartido devuelto por la función.matlab::engine::MATLABEngine
matlab::mex::Function::getEngine
Por ejemplo:
std::shared_ptr<matlab::engine::MATLABEngine> matlabPtr = getEngine();
Utilice este puntero para llamar a las funciones del motor. Por ejemplo:
matlabPtr->feval(...);
Las funciones del motor de llamadas solo se encuentran en el mismo subproceso que la clase.MexFunction
matlab::engine::MATLABEngine::feval | Llame a funciones con argumentosMATLAB |
matlab::engine::MATLABEngine::fevalAsync | Función de llamada con argumentos y valores devueltos asincrónicamente.MATLAB |
matlab::engine::MATLABEngine::eval | Evalúe las sentencias en el espacio de trabajo baseMATLAB |
matlab::engine::MATLABEngine::evalAsync | Evalúe las sentencias en el espacio de trabajo base de forma asincrónicaMATLAB |
matlab::engine::MATLABEngine::getVariable | Obtenga variables del espacio de trabajo base o globalMATLAB |
matlab::engine::MATLABEngine::getVariableAsync | Obtenga variables del espacio de trabajo base o global de forma asincrónicaMATLAB |
matlab::engine::MATLABEngine::setVariable | Coloque las variables en el espacio de trabajo base o globalMATLAB |
matlab::engine::MATLABEngine::setVariableAsync | Coloque las variables en el espacio de trabajo base o global asincrónicamenteMATLAB |
matlab::engine::MATLABEngine::getProperty | Obtener propiedad de objeto |
matlab::engine::MATLABEngine::getPropertyAsync | Obtener la propiedad de objeto asincrónicamente |
matlab::engine::MATLABEngine::setProperty | Establecer propiedad de objeto |
matlab::engine::MATLABEngine::setPropertyAsync | Establecer la propiedad del objeto asincrónicamente |
matlab::engine::MATLABEngine::feval
std::vector<matlab::data::Array> feval(const std::u16string &function, const size_t numReturned, const std::vector<matlab::data::Array> &args, const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>, const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
matlab::data::Array feval(const std::u16string &function, const std::vector<matlab::data::Array> &args, const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(), const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
matlab::data::Array feval(const std::u16string &function, const matlab::data::Array &arg, const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(), const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
ResultType feval(const std::u16string &function, const std::shared_ptr<matlab::engine::StreamBuffer> &output, const std::shared_ptr<matlab::engine::StreamBuffer> &error, RhsArgs&&... rhsArgs )
ResultType feval(const std::u16string &function, RhsArgs&&... rhsArgs)
Funciones de llamada de funciones MEX.MATLAB Utilice para llamar a las funciones con argumentos pasados de las funciones MEX y para devolver un resultado de la función MEX.feval
MATLABMATLAB
Las entradas y salidas son tipos definidos por el.API de datos de MATLAB También hay una sintaxis para admitir tipos de C++ nativos.
| Nombre de la función o secuencia de comandos que se evaluará.MATLAB Especifique el nombre como un. |
| Número de valores devueltos. |
| Varios argumentos de entrada para pasar a la función en un.MATLAB |
| Argumento de entrada único para pasar a la función.MATLAB |
| Búfer de secuencia utilizado para almacenar la salida estándar de la función.MATLAB |
| Búfer de secuencia utilizado para almacenar el mensaje de error de la función.MATLAB |
| Tipos de datos nativos de C++ utilizados para entradas de función. acepta las entradas escalares de estos tipos de datos de C++:,,,,,,,,,,. |
| Salidas devueltas desde la función.MATLAB |
| Salida única devuelta de la función.MATLAB |
| Salida devuelta de la función como un tipo especificado por el usuario.MATLAB Puede ser un si se devuelven varios argumentos. |
| Hay un error en tiempo de ejecución en la función.MATLAB |
| El resultado de una función no se puede convertir al tipo especificado.MATLAB |
| Hay un error de sintaxis en la función.MATLAB |
Para obtener más información, consulteFunciones de llamada de funciones MEXMATLAB
matlab::engine::MATLABEngine::fevalAsync
FutureResult<std::vector<matlab::data::Array>> fevalAsync(const std::u16string &function, const size_t numReturned, const std::vector<matlab::data::Array> &args, const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(), const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
FutureResult<matlab::data::Array> fevalAsync(const std::u16string &function, const std::vector<matlab::data::Array> &args, const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(), const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
FutureResult<matlab::data::Array> fevalAsync(const std::u16string &function, const matlab::data::Array &arg, const std::shared_ptr<matlab::engine::StreamBuffer> & output = std::shared_ptr<matlab::engine::StreamBuffer>(), const std::shared_ptr<matlab::engine::StreamBuffer> & error = std::shared_ptr<matlab::engine::StreamBuffer>())
FutureResult<ResultType> fevalAsync(const std::u16string &function, const std::shared_ptr<matlab::engine::StreamBuffer> &output, const std::shared_ptr<matlab::engine::StreamBuffer> &error, RhsArgs&&... rhsArgs)
FutureResult<ResultType> fevalAsync(const std::u16string &function, RhsArgs&&... rhsArgs)
Función de llamada con argumentos y valores devueltos asincrónicamente.MATLAB
| Nombre de la función o secuencia de comandos que se evaluará.MATLAB Especifique el nombre como un. |
| Número de valores devueltos |
| Varios argumentos de entrada para pasar a la función en un.MATLAB |
| Argumento de entrada único para pasar a la función.MATLAB |
| Búfer de secuencia utilizado para almacenar la salida estándar de la función.MATLAB |
| Búfer de secuencia utilizado para almacenar el mensaje de error de la función.MATLAB |
| Tipos de datos nativos de C++ utilizados para entradas de función. acepta las entradas escalares de estos tipos de datos de C++:,,,,,,,,,,. |
| Un objeto utilizado para obtener el resultado de llamar a la función. |
Ninguno
matlab::engine::MATLABEngine::eval
void eval(const std::u16string &statement, const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer> (), const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer> ())
Evalúe una instrucción como una cadena de texto en el área de trabajo de la función de llamada.MATLAB
| instrucción para evaluarMATLAB |
| Búfer de secuencia utilizado para almacenar la salida estándar de la instrucciónMATLAB |
| Búfer de secuencia utilizado para almacenar el mensaje de error desde el comandoMATLAB |
| Hay un error en tiempo de ejecución en la instrucción.MATLAB |
| Hay un error de sintaxis en la instrucción.MATLAB |
Para obtener más información, consulteEjecutar sentencias de la función MEXMATLAB
matlab::engine::MATLABEngine::evalAsync
FutureResult<void> evalAsync(const std::u16string &str, const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer> (), const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer> ())
Evalúe una instrucción como una cadena de forma asincrónica.MATLAB
| instrucción para evaluarMATLAB |
| Búfer de secuencia utilizado para almacenar la salida estándar de la instrucción.MATLAB |
| Búfer de secuencia utilizado para almacenar el mensaje de error desde el comando.MATLAB |
| Un objeto que se usa para esperar la finalización de la instrucción. |
Ninguno
matlab::engine::MATLABEngine::getVariable
matlab::data::Array getVariable(const std::u16string &varName, WorkspaceType workspaceType = WorkspaceType::BASE)
Obtenga una variable desde el espacio de trabajo base o global.MATLAB
| Nombre de una variable en el área de trabajo.MATLAB Especifique el nombre como un. |
| espacio de trabajo (BASE o GLOBAL) para obtener la variable.MATLAB Para obtener más información, consulte y. |
| La variable obtenida del espacio de trabajo base o globalMATLAB |
| La variable solicitada no existe en el espacio de trabajo base o global especificado.MATLAB |
Para obtener más información, consulteEstablecer y obtener variables de MEXMATLAB
matlab::engine::MATLABEngine::getVariableAsync
FutureResult<matlab::data::Array> getVariableAsync(const std::u16string &varName, WorkspaceType workspaceType = WorkspaceType::BASE)
Obtener una variable del espacio de trabajo base o global de forma asincrónica.MATLAB
| Nombre de la variable en el espacio de trabajo.MATLAB Especifique el nombre como un. |
| espacio de trabajo (BASE o GLOBAL) para obtener la variable.MATLAB Para obtener más información, consulte. |
| Un objeto que puede utilizar para obtener la variable obtenida del espacio de trabajo como un. |
Ninguno
matlab::engine::MATLABEngine::setVariable
void setVariable(const std::u16string &varName, const matlab::data::Array &var, WorkspaceType workspaceType = WorkspaceType::BASE)
Coloque una variable en el espacio de trabajo base o global.MATLAB Si existe una variable con el mismo nombre en el espacio de trabajo, sobrescribirá.MATLABsetVariable
| Nombre de la variable que se creará en el espacio de trabajo.MATLAB Especifique el nombre como un. |
| Valor de la variable que se creará en el espacio de trabajo.MATLAB |
| espacio de trabajo (BASE o GLOBAL) para poner la variable en.MATLAB Para obtener más información, consulte y. |
Para obtener más información, consulteEstablecer y obtener variables de MEXMATLAB
matlab::engine::MATLABEngine::setVariableAsync
FutureResult<void> setVariableAsync(const std::u16string &varName, const matlab::data::Array var, WorkspaceType workspaceType = WorkspaceType::BASE)
Coloque una variable en el espacio de trabajo base o global de forma asincrónica.MATLAB Si existe una variable con el mismo nombre en el espacio de trabajo base, sobrescribirá.MATLABsetVariableAsync
| Nombre de la variable que se creará en el espacio de trabajo.MATLAB Especifique el nombre como un. |
| Valor de la variable que se creará en el espacio de trabajoMATLAB |
| Coloque la variable en el espacio de trabajo BASE o GLOBAL.MATLAB Para obtener más información, consulte. |
Ninguno
matlab::engine::MATLABEngine::getProperty
matlab::data::Array getProperty(const matlab::data::Array &objectArray, size_t index, const std::u16string &propertyName)
matlab::data::Array getProperty(const matlab::data::Array &object, const std::u16string &propertyName)
Obtener el valor de una propiedad de objeto. Si el argumento de entrada de objeto es una matriz de objetos, especifique el índice del elemento de matriz que corresponde al objeto cuyo valor de propiedad desea obtener.
| Matriz de objetosMATLAB |
| Objeto escalarMATLAB |
| Índice de base cero en la matriz de objetos, especificando el objeto en esa matriz cuyo valor de propiedad se devuelve |
| Nombre de la propiedad. Especifique el nombre como un. |
| El valor de la propiedad con nombre |
| La propiedad no existe. |
Para obtener más información, consulteLos objetos en funciones MEXMATLAB
matlab::engine::MATLABEngine::getPropertyAsync
matlab::engine::FutureResult<matlab::data::Array> getPropertyAsync(const matlab::data::Array &objectArray, size_t index, const std::u16string &propertyName)
matlab::engine::FutureResult<matlab::data::Array> getPropertyAsync(const matlab::data::Array &object, const std::u16string &propertyName)
Obtener el valor de una propiedad de objeto de forma asincrónica. Si el argumento de entrada de objeto es una matriz de objetos, especifique el índice del elemento de matriz que corresponde al objeto cuyo valor de propiedad desea obtener.
| Matriz de objetosMATLAB |
| Objeto escalarMATLAB |
| Índice de base cero en la matriz de objetos, especificando el objeto en esa matriz cuyo valor de propiedad se devuelve |
| Nombre de la propiedad. Especifique el nombre como un. |
| objeto que se utiliza para sincronizar la operación. |
Ninguno
matlab::engine::MATLABEngine::setProperty
void setProperty(matlab::data::Array &objectArray, size_t index, const std::u16string &propertyName, const matlab::data::Array &propertyValue)
void setProperty(matlab::data::Array &object, const std::u16string &propertyName, const matlab::data::Array &propertyValue)
Establezca el valor de una propiedad de objeto. Si el argumento de entrada de objeto es una matriz de objetos, especifique el índice del elemento de matriz que corresponde al objeto cuyo valor de propiedad desea establecer.
| Matriz de objetosMATLAB |
| Objeto escalarMATLAB |
| Índice de base cero en la matriz de objetos, especificando el objeto en esa matriz cuyo valor de propiedad se establece |
| Nombre de la propiedad que se establecerá. Especifique el nombre como un. |
const matlab::data::Array &propertyValue | Valor asignado a la propiedad |
| La propiedad no existe. |
Para obtener más información, consulteLos objetos en funciones MEXMATLAB
matlab::engine::MATLABEngine::setPropertyAsync
FutureResult<void> setPropertyAsync(matlab::data::Array &objectArray, size_t index, const std::u16string &propertyName, const matlab::data::Array &propertyValue)
FutureResult<void> setPropertyAsync(matlab::data::Array &object, const std::u16string &propertyName, const matlab::data::Array &propertyValue)
Establezca el valor de una propiedad de objeto de forma asincrónica. Si el argumento de entrada de objeto es una matriz de objetos, especifique el índice del elemento de matriz que corresponde al objeto cuyo valor de propiedad desea establecer.
| Matriz de objetosMATLAB |
| Objeto escalarMATLAB |
| Índice de base cero en la matriz de objetos, especificando el objeto en esa matriz cuyo valor de propiedad se establece |
| Nombre de la propiedad que se establecerá. Especifique el nombre como un. |
const matlab::data::Array &propertyValue | Valor asignado a la propiedad. |
Ninguno
Excepción | Causa |
---|---|
| Hay un error en tiempo de ejecución en la función o no se inicia.MATLABMATLAB |
| Hay un error de sintaxis en la función.MATLAB |
| Hay un error en tiempo de ejecución en la función o instrucción.MATLABMATLAB |
| El resultado de la función no se puede convertir al tipo especificadoMATLAB |
Para obtener más información, consulteDetectar excepciones en la función MEX