передача параметра для вызова функции matlab в переполнении стека

используя инструмент развертывания, я создал общую библиотеку c ++. Моя функция Matlab просто получает один входной параметр, который является путем к изображениям, и возвращает вектор 1 * 6 в два раза;

Я много искал в сети и нашел шаги, вызывающие функции Matlab в C ++; Теперь я знаю, что сначала я должен инициализировать приложение и библиотеку, например:

#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 и какие параметры я должен передать этому.

Пожалуйста, помогите мне, если вы сделаете этот звонок раньше.

Спасибо огромное!

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();

Проверять, выписываться эта почта для получения дополнительной информации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]