используя инструмент развертывания, я создал общую библиотеку 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 и какие параметры я должен передать этому.
Пожалуйста, помогите мне, если вы сделаете этот звонок раньше.
Спасибо огромное!
Пройти 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();
Проверять, выписываться эта почта для получения дополнительной информации.
Других решений пока нет …