传递用于在c ++中调用matlab函数的参数

时间:2014-02-26 10:26:41

标签: c++ matlab windows-7-x64 mixed-programming

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

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

非常感谢你!

1 个答案:

答案 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了解详情。