埃斯塔páginaAUN没有本质公顷traducido对ESTA版本。Puede版本LA版MÁSreciente德ESTApágina恩英格尔斯。

Llame一个funciones desde C ++MATLAB

Llamar一个funciones得C ++ CON拉斯funciones miembro德拉clase.MATLAB®fevalfevalAsyncmatlab的发动机:: :: MATLABEngineUtilice estas funciones宽多desee巴刹argumentos德función德C ++一个Ÿ对devolver EL resultado德拉ejecución德拉función一个C ++。MATLAB Estas funciones miembro funcionan科莫拉función.MATLABfeval

帕拉llamar一个UNAfunción:MATLAB

  • 磷酸酶埃尔农布雷德拉función科莫联合国。matlab的发动机:: ::字符串

  • Defina洛斯argumentos德ENTRADA requeridos POR LAfunción.MATLABPuede USAR洛斯tipos德DATOS nativos得C ++öLA API去datos.MATLAB帕拉obtener更多资料,consulte。API德DATOS日MATLAB

  • Especifique ELNÚMERO德salidas阙本身esperan德拉función.MATLAB乌纳萨利达ES LA predeterminada。帕拉obtener更多资料,consulte年。Función德llamada CON VARIOS argumentos devueltosNÚMERO去控制德salidas

  • Defina EL TIPO devuelto adecuado对洛杉矶resultados德拉función.MATLAB

  • Utilicebúferes德secuencia对redirigir拉萨利达estándarŸEL错误estándardesde拉本塔纳去comandos一个C ++。MATLAB帕拉obtener更多资料,consulteRedirigir萨利达日德塔纳一个comandos C ++ MATLAB

帕拉evaluar sentencias utilizando变量恩报德非裔基地特拉瓦霍,utilice拉斯funciones miembro y.MATLABMATLABmatlab的发动机:: :: MATLABEngineEVALevalAsyncEstas funciones乐permiten CREARŸutilizar变量恩报德非裔特拉瓦霍,佩罗没有devuelven valores.MATLAB帕拉obtener更多资料,consulte。Evaluar extractos德C ++ MATLAB

第obtener信息自我COMO configurarýcompilar计划成德马达德C ++,VEA。Compilar计划成德马达得C ++

Función德llamada CON UNICO argumento devuelto

埃斯特ejemplo utiliza拉función对encontrar EL被Máximocomún除数德DOSnúmeros.MATLABGCD香格里拉funciónmiembro devuelve洛杉矶resultados德拉llamada一拉función。MATLABEngine :: fevalGCD

使用LA对CREAR DOS argumentos escalares。MATLAB ::数据:: ArrayFactoryint16_t磷酸酶洛杉矶argumentos一个。MATLABEngine :: feval的std ::矢量

的#include “MatlabEngine.hpp” 的#include “MatlabDataArray.hpp” 的#include 
空隙callFevalgcd(){//使用命名空间MATLAB ::发动机含MATLAB数据阵列标量通行证向量;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();//创建MATLAB数据阵列工厂MATLAB ::数据:: ArrayFactory工厂;含有//通行证矢量2个标量ARGS在矢量的std ::矢量 ARGS({factory.createScalar (30),factory.createScalar (56)});//调用MATLAB函数和返回结果的matlab ::数据:: TypedArray 导致= matlabPtr-> feval(u “的GCD”,参数);int16_t V =结果[0];性病::法院<< “结果:” << v <<的std :: ENDL;}

Puede llamar mediante tipos nativos德C ++。MATLABEngine :: feval帕拉ELLO,德贝especificar EL TIPO devuelto CON LA llamada科莫:MATLABEngine :: feval

feval <类型>(...)

POR ejemplo,EL TIPO devuelto ESTA褐:INT

INT cresult = matlabPtr-> feval 的(u “的GCD”,30,56);

恩埃斯特ejemplo本身定义对巴刹UNA matriz德TIPO一拉función。MATLAB ::数据:: TypedArrayMATLAB开方墙裙阙UNO德洛斯números德拉matriz ES negativo,devuelve UNA matriz compleja科莫resultado.MATLAB POR LO短刀,defina EL TIPO devuelto科莫联合国。MATLAB ::数据:: TypedArray <性病::复杂<双>>

的#include “MatlabDataArray.hpp” 的#include “MatlabEngine.hpp” 的#include 
空隙callFevalsqrt(){//调用MATLAB SQRT上使用的命名空间的matlab ::发动机阵列功能;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();//创建MATLAB数据阵列工厂MATLAB ::数据:: ArrayFactory工厂;//定义一个四元件阵列MATLAB ::数据:: TypedArray <双>常量必要参数= factory.createArray({1,4},{-2.0,2.0,6.0,8.0});//调用MATLAB函数MATLAB ::数据:: TypedArray <性病::复杂<双>> const的结果= matlabPtr-> feval(U “SQRT”,必要参数);//显示结果INT I = 0;为(自动R:结果){加倍=必要参数[I ++];双realPart = r.real();加倍imgPart = r.imag();的std :: COUT << <<一个<< “是”, “平方根” << realPart << “+” << imgPart << “i” 的<<的std :: ENDL; } }

ES Seguro的USAR未对洛斯tipos devueltos人llamar一个funciones。MATLAB ::数据::阵列MATLAB POR ejemplo,puede escribir EL ejemplo前utilizando联合国第下午英勇devuelto。MATLAB ::数据::阵列

空隙callFevalsqrt(){//调用MATLAB SQRT上使用的命名空间的matlab ::发动机阵列功能;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();//创建MATLAB数据阵列工厂MATLAB ::数据:: ArrayFactory工厂;//定义一个四元件阵列MATLAB ::数据::阵列常量必要参数= factory.createArray({1,4},{-2.0,2.0,6.0,8.0});//调用MATLAB函数MATLAB ::数据::阵列结果= matlabPtr-> feval(U “SQRT”,必要参数);//显示结果(中间体I = 0;我 V =结果[I];双realPart = v.real();加倍imgPart = v.imag();的std :: COUT << <<一个<< “是”, “平方根” << realPart << “+” << imgPart <<的std :: ENDL; } }

Función德llamada CON argumentos德农布雷/英勇

Algunas funciones aceptan argumentos去比肩农布雷 - 勇气opcionales.MATLAB洛杉矶nombres儿子矩阵日CARACTERES和Los VALORES pueden SER cualquier TIPO德勇气。Utilice一对CREAR联合国载体德argumentos阙contenga洛杉矶nombresŸVALORES EN LA secuencia correcta。的std ::矢量

埃斯特código德ejemplo骆驼一拉función对calcular拉SUMA德movimiento centrada连接特雷斯puntos日联合国载体德FILA,descartando洛杉矶cálculos德尔PUNTO德conexión.MATLABmovsum埃斯塔llamada德funciónrequiere estos argumentos:

  • Matriz NUMERICA

  • Longitud德拉查看地址escalar

  • 帕农布雷 - 勇气阙CONSTA德拉斯矩阵德CARACTERESÿ端点丢弃

褐ESTA ELcódigoequivalente:MATLAB

A = [4 8 6 -1 -2 -3 -1 3 4 5];M = movsum(A,3,“端点”'丢弃');

磷酸酶洛杉矶argumentos一个科莫联合国contenedor德estos argumentos对拉función。MATLABEngine :: feval的std ::矢量MATLAB克里CADA argumento utilizando报。MATLAB ::数据:: ArrayFactory

空隙callFevalmovsum(){含有各种类型的使用命名空间MATLAB ::发动机参数//通行证向量;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();//创建MATLAB数据阵列工厂MATLAB ::数据:: ArrayFactory工厂;//创建的输入参数的向量的std ::矢量 ARGS({factory.createArray <双>({1,10},{4,8,6,-1,-2,-3,-1,3,4,5}),factory.createScalar (3),factory.createCharArray( “端点”),factory.createCharArray( “丢弃”)});//调用MATLAB函数MATLAB ::数据:: TypedArray <双>常量结果= matlabPtr-> feval(U “movsum”,参数);//显示结果INT I = 0;为(自动R:结果){的std :: COUT << “结果[” << i ++在<< “] =” <<  -  [R <<的std :: ENDL;}}

Función德llamadaasincrónica

埃斯特ejemplo骆驼一拉función对multiplicar DOS polinomios.MATLABCONVDespués德llamar,utilice对obtener EL resultado去。MATLABEngine :: fevalAsync将FutureResult :: GETMATLAB

的#include “MatlabDataArray.hpp” 的#include “MatlabEngine.hpp” 的#include 
静态无效callFevalAsync(){//使用异步命名空间MATLAB ::发动机呼叫MATLAB函数;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();//创建MATLAB数据阵列工厂MATLAB ::数据:: ArrayFactory工厂;//创建输入变量阵列的std ::矢量 ARGS({factory.createArray <双>({1,3},{1,0,1}),factory.createArray <双>({1,2},{2,7})});字符串FUNC(U “转化”);//调用函数asnychronously使用FutureResult 未来= matlabPtr-> fevalAsync(FUNC,参数);//取得结果matlab的::数据:: TypedArray <双>结果的Future.get =();//显示结果的std ::法院<< “系数:” <<的std :: ENDL;对于(汽车R:结果){性病::法院<< [R << “” <<的std :: ENDL;}}

Función德llamada CON VARIOS argumentos devueltos

埃斯特código德ejemplo utiliza拉función对encontrar EL被Máximocomún除数和Los coeficientes德的Bezout德洛斯DOS VALORESnuméricos帕萨科莫entradas.MATLABGCD香格里拉funciónpuede devolver UNOØ特雷斯argumentos,连接función德拉cantidad德salidas阙solicite拉llamada一拉función。GCD恩埃斯特ejemplo,拉llamada一拉funcióndevuelve特雷斯salidas.MATLABGCD

德备考predeterminada,SE supone阙埃尔NÚMERO德VALORES devueltos ES UNO。MATLABEngine :: fevalPOR LO短刀,德贝especificar ELNÚMERO真正去VALORES devueltos科莫埃尔塞贡多argumento。MATLABEngine :: feval

恩埃斯特ejemplo,devuelve联合国阙contiene洛杉矶特雷斯resultados德拉llamada一拉función。MATLABEngine :: feval的std ::矢量GCD洛杉矶VALORES devueltos儿子enteros escalares。

的#include “MatlabDataArray.hpp” 的#include “MatlabEngine.hpp” 的#include 
空隙多输出(){//使用命名空间MATLAB ::发动机含MATLAB数据阵列阵列通行证向量;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();性病::法院<< “入门MATLAB引擎” <<的std :: ENDL;//创建MATLAB数据阵列工厂MATLAB ::数据:: ArrayFactory工厂;//创建MATLAB数据阵列阵列矢量的std ::矢量 ARGS({factory.createScalar (30),factory.createScalar (56)});//调用GCD函数,得到3个输出常量为size_t numReturned = 3;的std ::矢量导致= matlabPtr-> feval(u “的GCD”,numReturned,参数);//显示结果为(自动R:结果){的std :: COUT << “最大公约数输出:” << int16_t(R [0])<<的std :: ENDL;}}

Función德llamada CON tipos德C ++ nativos

Puede USAR tipos得C ++ nativos人llamar一个funciones。ÿacepte determinados tipos得C ++ escalares pasados como的argumentos德función.MATLABMATLABEngine :: fevalMATLABEngine :: fevalAsyncMATLAB帕拉巴刹矩阵ýOTROS tipos一个funciones,utilice LA API去datos.MATLABMATLAB帕拉obtener更多资料自我ESTA API,consulte。API德DATOS日MATLAB

恩埃斯特ejemplo SE utilizan VALORES科莫入住日期为y的第devolver洛杉矶resultados德拉función。int16_t的std ::元组MATLABGCD

褐ESTA ELcódigoequivalente.MATLAB

[G,U,V] = GCD(INT16(30),INT16(56));
的#include “MatlabEngine.hpp” 的#include <的iostream>的#include <元组>
空隙multiOutputTuple()使用的命名空间的matlab ::发动机MATLAB函数调用{//返回的元组;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();//调用MATLAB gcd上述功能的std ::元组 nresults;nresults = matlabPtr-> feval <性病::元组>(u “的GCD”,int16_t(30),int16_t(56));//显示结果int16_t G;int16_t U;int16_t V;的std ::领带(G,U,V)= nresults;的std :: COUT << “GCD:” <<ģ<< “ ”<< “的Bezout U:” << U <<“,” << “的Bezout五:” << V <<的std :: ENDL;}

帕拉obtener信息específica自我LA sintaxis德拉斯funciones miembro,consulte。matlab的发动机:: :: MATLABEngine

NÚMERO去控制德salidas

funciones pueden comportarse德MANERA diferente dependiendo德尔NÚMERO日salidas solicitadas.MATLAB Algunas funciones没有pueden devolver NINGUNA萨利达Ø未NÚMEROespecificado德salidas。

POR ejemplo,拉funciónmantiene拉ejecución杜兰特未NÚMEROespecificado德segundos.MATLAB暂停仙禁运,SI骆驼CON未argumento德萨利达,devuelve inmediatamente CON未勇气去埃斯塔罪pausar。暂停

暂停(20)%暂停20秒
状态=暂停(20);%没有暂停,返回暂停状态

埃斯特ejemplo骆驼罪asignar UNA萨利达。暂停CON LA萨利达especificada,PAUSA拉ejecución杜兰特20个segundos。空虚MATLAB

#包括“MatlabEngine.hpp”
空隙voidOutput()从feval使用命名空间MATLAB ::发动机{//无输出;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();没有输出//调用暂停功能matlabPtr-> feval <空隙>(U “暂停”,20);}

埃斯塔llamada一个utiliza LA FIRMA阙定义洛杉矶argumentos德función科莫联合国。MATLABEngine :: fevalMATLAB的std ::矢量仙asignar联合国argumento德萨利达,SE detiene拉ejecución杜兰特20 segundos.MATLAB

#包括 “MatlabDataArray.hpp” 的#include “MatlabEngine.hpp”
空隙zeroOutput()从feval使用命名空间MATLAB ::发动机{//无输出;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();//创建MATLAB数据阵列工厂MATLAB ::数据:: ArrayFactory工厂;没有输出MATLAB ::数据//调用暂停功能::阵列ARG = factory.createScalar (20);常量为size_t numReturned = 0;matlabPtr-> feval(U “暂停”,numReturned,{ARG});}

香格里拉funcióndevuelve洛杉矶出生日期Ÿ霍拉actuales科莫联合国载体德fecha.MATLAB时钟硅asigna DOS salidas,devuelve拉乙组萨利达科莫联合国英勇booleano阙籼稻SI ES霍拉日AHORRO代卢斯diurna EN La Zona酒店horaria德尔SISTEMA。时钟

恩埃斯特ejemplo SE骆驼一拉funciónCON UNA萨利达ØDOS salidas,ENfunción德尔勇气去联合国argumento德ENTRADA。时钟埃尔塞贡多argumento pasado一拉llamada对determinar ELNÚMERO德salidas对solicitar。MATLABEngine :: feval时钟

Llame CON estos argumentos。MATLABEngine :: feval

入住日期

农布雷迪奥斯funciónMATLAB 常量MATLAB ::引擎::字符串
NÚMERO德salidas 常量为size_t
Argumentos德ENTRADA对拉función(vacío)MATLAB 的std ::矢量

Salidas

托达拉斯salidas 的std ::矢量
的#include “MatlabDataArray.hpp” 的#include “MatlabEngine.hpp” 的#include 
空隙varOutputs(常量布尔tZone){命名空间使用MATLAB ::发动机;//开始MATLAB引擎同步的std ::的unique_ptr  matlabPtr = startMATLAB();性病::法院<< “入门MATLAB引擎” <<的std :: ENDL;//定义的为size_t numReturned输出数(0);如果(tZone){numReturned = 2;}否则{numReturned = 1;}的std ::矢量日期时间= matlabPtr-> feval(U “时钟”,numReturned,{});自动dateVector =日期时间[0];//显示结果(中间体I = 0;我<6; i ++在){的std :: COUT <<双(dateVector [I])<<““;}如果(tZone){自动DTS =日期时间[1]; if (bool(DTS[0])) { std::cout << "It is Daylight Saving Time" << std::endl; } else { std::cout << "It is Standard Time" << std::endl; } } }

Consultetambién

|

Temas relacionados