MATLAB进行评估®从c++使用语句MATLABEngine: eval
和MATLABEngine: evalAsync
成员函数。这些成员函数类似于MATLABeval
函数。的MATLABEngine: eval
和MATLABEngine: evalAsync
函数不返回的结果评估MATLAB语句。
使用MATLABEngine: eval
和MATLABEngine: evalAsync
当你不需要从c++或返回值传递参数到c++。你执行的语句,这些函数可以访问变量在MATLAB工作区。
这里有一些事情要了解评估在MATLAB语句。
这些功能通过MATLAB作为语句matlab::引擎::字符串
。
将一个std:: string
到一个matlab::引擎::字符串
使用你“…”
文字或效用函数matlab:引擎::convertUTF8StringToUTF16String
。
输入参数中指定字符串必须存在于MATLAB工作区。
您可以将评估的结果分配给变量在声明字符串。你分配的变量在声明中MATLAB基础创建工作区。
MATLAB不要求您创建的初始化变量声明。
你可以从MATLAB函数存储标准输出和错误消息流缓冲区。
这个示例代码使用MATLABEngine: eval
评估的一系列MATLAB语句。这些语句:
这是等价的MATLAB代码。
(X, Y) = meshgrid (2:0.2:2);Z = X。* exp (- X。^ 2 - y ^ 2);冲浪(Z)打印(“SurfaceGraph”,“-djpeg”)currentFolder = pwd;
这是c++代码来执行这些语句在MATLAB。
# include“MatlabDataArray。hpp MatlabEngine # include。高压泵”# include < iostream >
空白evalSurfaceGraph(){/ /评价函数在MATLAB中使用名称空间MATLAB::引擎;/ /开始MATLAB引擎同步std:: unique_ptr < MATLABEngine > matlabPtr = startMATLAB ();/ /评估在MATLAB命令matlabPtr - > eval (u”(X, Y) = meshgrid (2:0.2:2);”);matlabPtr - > eval (u“Z = X。* exp (- X。^ 2 - y ^ 2);“);matlabPtr - > eval (u“冲浪(Z)”);matlabPtr - > eval (u“打印(‘SurfaceGraph’,‘-djpeg’)”);matlabPtr - > eval (u“currentFolder = pwd;”);/ /得到包含matlab jpeg文件的文件夹的名称:数据::CharArray currentFolder = matlabPtr - > getVariable (u“currentFolder”);std:: cout < <“SurfaceGraph.jpg写这个文件夹:“< < currentFolder.toAscii () < < std:: endl;}
如何设置和信息构建c++引擎项目,明白了构建c++引擎项目。