传递用于在 C++ 中调用 MATLAB 函数的参数

passing parameter for calling a matlab function in c++

本文关键字:MATLAB 函数 参数 调用 用于 C++      更新时间:2023-10-16

使用部署工具,我制作了 c++ 共享库。我的 Matlab 函数只获取一个输入参数,即图像的路径,并以双精度返回一个 1*6 向量;

我在网上搜索了很多,找到了C++调用 Matlab 函数的步骤;现在我知道首先我必须初始化应用程序和库,如下所示:

#include <libname.h>
mclInitializeApplication();
mclInitializeApplication();

我知道最后我必须调用终止函数:

<libname>Terminate();
mclTerminateApplication();

但我不知道如何将字符串传递给 matlab 函数。我这样写:

string path = "C:\Users\user\Documents\MATLAB\Mypic.jpg";
mwArray im_path;

在调用im_path.SetData()时,我不知道我必须使用哪种类型。 第一个参数的类型不包括与字符串相关的任何类型。我也不知道如何调用 Matlab 函数以及我必须传递给哪些参数。

如果你之前打过那个电话,请帮助我。

非常感谢!

要将string作为输入参数传递给 Matlab,您只需使用:

mwArray im_path(path.c_str());

并且您还需要先初始化函数,然后再终止它。假设你的函数像function res = func(path)并被部署到func.lib,你需要:

funcInitialize()
...
mwArray res(1, 1,  mxDOUBLE_CLASS); // suppose the result is a double
func(1, res, im_path);              // call it here
...
funcTerminate();

查看这篇文章以获取更多信息。