要测试安装和环境,请在命名的文件中保存以下C ++代码testfeval.cpp.
(你可以使用任何名称)。要构建引擎应用程序,请在命令窗口中使用这些命令:
Mex -setup -client引擎c ++
在提示时选择要使用的已安装的编译器梅克斯
设置脚本。然后打电话给梅克斯
命令构建您的程序。确保matlab®用于C ++的Engine API支持金宝app您选择的编译器。对于支持的编译器的最新列表,请参阅金宝app金宝app支持和兼容的编译器网站。
Mex -V -client引擎TestFeval.cpp
这梅克斯
命令将可执行文件保存在同一文件夹中。
#include“matlabdataArray.hpp”#include“matlabengine.hpp”#includevoid callsqrt(){使用命名空间matlab ::引擎;// start matlab引擎同步std :: unique_ptr matlabptr = startmatlab();//创建MATLAB数据阵列Factory MATLAB :: DATA :: ArrayFactory Factory;//定义一个四元素键入的数组matlab :: data :: typedArray const argarray = factory.createArray({1,4},{-2.0,2.0,6.0,8.0});//在数据阵列上调用matlab sqrt函数matlab :: data :: array const结果= matlabptr-> feval(U“sqrt”,Argarray);//显示结果(int i = 0; i v =结果[i];双重realpart = v.real();双重IMGPART = v.imag();std :: cout << << <<“的平方根是”<< realpart <<“+”<< imgpart <<“i”<< std :: endl; } } int main() { callSQRT(); return 0; }
以下是该程序的输出。在这种情况下,MATLAB返回一个复杂的阵列,因为数据数组中的数字之一是否定的。
-2的平方根为0 + 1.41421i平方根,2为1.41421 + 0i平方根,6是2.44949 + 0i平方根8为2.82843 + 0i
Matlab :: Engine :: Matlabengine
|梅克斯