[英]passing parameter for calling a matlab function in c++
使用部署工具,我制作了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();
查看此帖子以获取更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.