使用部署工具,我制作了 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();
查看这篇文章以获取更多信息。