Я пытаюсь взять некоторый код C ++ и поместить вокруг него соответствующие оболочки Mex-функций MatLab, чтобы я мог вызывать свой C ++ как функцию MatLab.Мой код C ++ принимает 4 аргумента командной строки, используя argc и argv.
Вызов функции C ++ из командной строки будет следующим: myfunciton string1 string2 string3 string4
Что мне нужно, так это мой вызов функции MatLabиз командной строки MatLab выглядеть следующим образом: myfunction ('string1', 'string2', 'string3', 'string4')
Я просмотрел следующий пост в блоге, и OP может это сделатьиспользуя c (не c ++) и между этим и документацией MatLab для C ++, я был немного озадачен (в основном из-за различий в синтаксисе между публикацией блога и документацией по Mathwork для c ++)
https://sungkwang.wordpress.com/2011/01/17/passing-argument-in-mex-function-without-modifying-c-code/
https://www.mathworks.com/help/matlab/matlab_external/c-mex-source-file.html
#include "mex.hpp"
#include "mexAdapter.hpp"
using namespace matlab::data;
using matlab::mex::ArgumentList;
class MexFunction : public matlab::mex::Function {
public:
void operator()(ArgumentList outputs, ArgumentList inputs) {
int argc = 0;
argc = inputs.size();
//I'm unsure of how to handle the argv portion(?)
main(argc,argv);
}
int main(int argc, char *argv[]){
//Rest of code... omitted for brevity of question
}
};