Я пытаюсь написать очень простой файл в формате mex, скажем, чтобы попробовать, как он работает. Я прочитал много материалов и больше читаю, больше смущаюсь. Мне нужно это для дальнейшей записи файла mex, который взаимодействует с внешним оборудованием. Пожалуйста помоги!Написание чрезвычайно простой mex-функции в matlab
// header file - printing.h //
#include<iostream>
class printing
{
public:
void name();
void age();
};
// cpp file - printing.cpp //
#include<iostream>
#include "mex.h"
#include "matrix.h"
#include "printing.h"
#include <string>
using namespace std;
void mexFunction(int nlhs, mxArray*plhs[],
int nrhs, const mxArray *prhs[])
{
printing p1;
p1.name();
p1.age();
}
void printing::name()
{
cout << "NAME" << endl;
}
void printing::age()
{
cout << "20" << endl;
}
// .m файл - test.m //
sprintf ('WELCOME')
printing()
Когда я запускаю файл test.m, я хотел бы видеть приветственные NAME Однако я вижу только Добро пожаловать. Я понимаю, что я не обновил массив plhs []. Но все, что я хочу сделать, это выполнить что-то внутри mexFunction. Почему бы cout внутри name() и age() не достигнуть этого?
Также, как я могу подтвердить, что выполняются имя() и age()?
Обратите внимание: cout связан с консолью системы и что Matlab имеет собственную консоль, которую они называют «командным окном». Это означает, что ваш выход cout не будет отображаться в Matlab. – patrik