??m78 2023-08-27 15:21 采纳率: 0%
浏览 5

Matlab生成dll后,参数类型的问题

使用MATLIB生成dll后,在VS2015C++项目中调用时,发现参数类型都是mxArray这种类型的,但是我看网上很多教程都是mwArray的类型,这个如何修改呢?

img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-08-27 17:16
    关注

    引用 皆我百晓生 小程序回复内容作答:

    在使用MATLAB生成的DLL文件中,默认情况下,MATLAB函数的输入和输出参数类型是mxArray。而mwArray是一个MATLAB C++ API提供的用于更方便地与MATLAB函数交互的C++封装类。

    要在VS2015 C++项目中使用mwArray而不是mxArray类型,需要使用MATLAB提供的C++ API。以下是一些步骤:

    1. 在MATLAB中生成C++代码:对于您希望导出为DLL的MATLAB函数,可以使用MATLAB的代码生成工具生成相应的C++代码。示例如下:
    codegen -config:lib myMATLABFunction
    

    这将在当前目录下生成一个名为myMATLABFunction的文件夹,其中包含所需的C++代码文件。

    1. 将生成的C++代码添加到VS2015项目中:将所生成的C++代码文件(.cpp和.h文件)添加到您的VS2015 C++项目中。

    2. 修改C++代码中的参数类型:在生成的C++代码中,将参数类型从mxArray更改为mwArray。您可以通过查找和替换mxArraymwArray的方式进行修改。

    3. 构建和链接项目:构建和链接您的VS2015 C++项目,以确保没有任何编译错误。

    4. 在C++项目中调用MATLAB函数:在您的C++代码中,现在可以使用mwArray作为函数的输入和输出参数类型。使用mwArray提供的成员函数来进行与MATLAB函数的交互。

    需要注意的是,使用mwArray需要正确配置MATLAB C++ API,并在项目中包含所需的头文件和库。确保在VS2015中设置正确的包含目录和库目录,以及链接到MATLAB的相关库文件。

    请注意,mwArray是MATLAB C++ API提供的一种方便的方式,用于与MATLAB函数交互。但使用mxArray也是完全可行的,您可以在VS2015 C++项目中依然使用mxArray参数类型,使用MATLAB提供的函数来进行与mxArray的转换和操作。

    希望这些步骤对您有帮助,并帮助您在VS2015 C++项目中成功使用MATLAB生成的DLL文件。如有更多问题,请随时提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月27日

悬赏问题

  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥20 我的是道格手机,重置后屏幕右上角出现红色字的未写入tee key 和未写入google key请问怎么去掉啊
  • ¥30 关于R语言运行分区生存模型中的问题!
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀