0

使用部署工具,我生成了 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 函数以及我必须传递哪些参数。

如果你以前打过电话,请帮助我。

太感谢了!

4

1 回答 1

0

要将 astring作为输入参数传递给 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();

查看这篇文章了解更多信息。

于 2014-02-26T11:16:40.680 回答