主要内容

使用源文件发布到C ++库的接口

此示例创建了一个matlab®在标题文件中声明的C ++库的接口母系.HPP.并在C ++源文件中定义矩阵operations.cpp.。MATLAB提供这些源文件供您在此示例中使用。文件位于此文件夹中:

fullfile(matlabroot,'extern''例子''cpp_interface'

此示例创建共享库文件。有关使用MATLAB预设的共享库文件的示例,请参阅在Windows上发布对共享C ++库的接口

验证所选的C ++编译器

您可以使用MathWorks支持的任何C ++编译器。金宝app要验证您有C ++编译器,请键入:

梅克斯-设置CPP.

此示例使用Microsoft Visual C ++ 2017编译器。

生成定义文件

标识C ++库工件的名称和路径。

productpath = fullfile(matlabroot,'extern''例子''cpp_interface');hppfile ='矩阵operations.hpp';cppfile ='矩阵operations.cpp';

称呼clibgen.generatelibrarydefinition.

clibgen.generatelibrarydefinition(Fullfile(ProductPath,HPPFile),......“金宝app支持带源文件”,fullfile(productpath,cppfile),......“includepath”,产品路径,......“returncarrays”,错误的)%处理输出作为matlab阵列
使用Microsoft Visual C ++ 2017编译器。生成的定义文件definematrixoperations.mlx和数据文件'matrixoperationsdata.xml'包含Matlab支持的10个构造的定义。金宝app5构造要求(s)其他定义。要在界面中包含这些构造,请在refileematrixoperations.mlx中编辑定义。使用构建构建(Defenematrixoperations)。

定义缺失的结构

要定义缺少的构造,请单击链接中的链接generatelibrarydefinition.输出消息以编辑定义deffenematrixoperations.mlx.。有关编辑此文件的信息和用于指定参数的示例,请参阅定义MATLAB签名的缺失信息

  1. 搜索定义文件setmat.方法和取消注释定义它的语句。定义SRC.论证,在这默认声明,替换“len”

    DefineArgument(SetMatdefinition,“src”“clib.array.matrixoperations.int”“输入”“len”);
  2. 在方法中getmat.,定义守价通过更换输出“len”

    defineOutput(getMatdefinition,“retval”“int32”“len”);
  3. 在方法中椰子,定义Dest.替换的论点“len”

    DefineArgument(副本,“滴下”“clib.array.matrixoperations.int”“输入”“len”);
  4. 在功能中addmat.,定义功能中的论证addmat.通过更换1

    DefineArgument(AddMatdefinition,“垫”“clib.matrixoperations.mat”“输入”,1);
  5. 在功能中updatematbysize.,定义arr.替换的论点“len”

    defineargument(Updatematbysizedefinition,“arr”“clib.array.matrixoperations.int”“输入”“len”);

保存并关闭定义文件。

验证库

定义;

查看功能

摘要(Defenematrixoperations)
MATLAB接口到矩阵interfile interface interface grounducts class clib.matrixoperations.mat构造函数.mat构造函数.mat()clib.matrixoperations.mat(clib.matrixoperations.mat)方法:setmat(clib.array.matrixoperations.int)Int32 GetMat(UINT64)UINT64getLength()copymat(clib.array.matrixoperations.int)没有属性定义函数int32 clib.matrixoperations.addmat(clib.matrixoperations.mat)clib.matrixoperations.updatematyx(clib.matrixoperations.mat,int32)cli​​b.matrixoperations.updatematbysize(clib.matrixoperations.mat,clib.array.matrixoperations.int)

构建界面并添加到马铃薯小路

构建(Defenematrixoperations)
构建界面文件'矩阵operIntersface.dll'。界面文件'矩阵映射interface.dll'文件夹'c:\ users \ romixoperations'。要使用库,请将界面文件文件夹添加到MATLAB路径。

点击接口文件文件夹链接将接口添加到路径。或者,类型:

addpath('矩阵工程'

查看帮助

在MATLAB命令提示符下,显示接口的帮助。键入此命令以加载包。

博文clib.matrixoperations.mat

要显示包的成员,请键入:

博文Clib.matrixoperations.

要显示包功能的签名,请单击链接addmat.updatematbyx., 和updatematbysize.

显示有关类的信息clib.matrixoperations.mat,单击链接

呼叫库函数

测试接口中的功能。例如,类型:

matobj = clib.matrixoperations.mat;%创建垫子对象Intarr = [1,2,3,4,5];matobj.setmat(Intarr);%将值设置为IntarrRetmat = matobj.getmat(5)%显示值
Retmat = 1×5 Int32行向量1 2 3 4 5

也可以看看

||

相关话题