使用部署工具我制作了c ++共享库。我的Matlab函数只得到一个输入参数,即图像的路径,并以double的形式返回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()
时,我不知道我必须使用哪种类型。第一个参数的类型,不包括与string相关的任何类型。
另外我不知道如何调用Matlab函数以及我必须传递给哪些参数。
非常感谢你!
答案 0 :(得分:0)
要将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();
查看this post了解详情。