簡體   English   中英

在Matlab中編寫極其基本的mex函數

[英]Writing an extremely basic mex function in matlab

我正在嘗試編寫一個非常簡單的mex文件,讓我們嘗試一下它的工作方式。 我閱讀了很多材料,閱讀的內容更多,更困惑。 我需要它來進一步編寫一個與外部硬件交互的mex文件。 請幫忙!

// 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文件時,我希望看到WELCOME NAME 20,但是我只看到歡迎。 我知道我還沒有更新plhs []數組。 但是我要做的就是在mexFunction內部執行一些操作,為什么name()和age()內部的cout不能實現這一點?

另外,如何確認執行了name()和age()?

cout的調用不會打印到MATLAB控制台,您需要使用MEX printf函數。

mexPrintf("NAME\n");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM