2016-06-01 12 views
5

私は非常に簡単な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ファイルを実行すると、私は私だけ見ただし WELCOME NAME を見たいのですがようこそ。私はplhs []配列を更新していないことを理解しています。しかし、私がしたいことは、mexFunctionの中で何かを実行することです。名前()と年齢()の内部には何がありませんか?

また、name()とage()が実行されていることを確認するにはどうすればよいですか?

+1

coutはシステムのコンソールにリンクされており、Matlabには「コマンドウィンドウ」と呼ばれる独自の「コンソール」があることに注意してください。これは、あなたのcout出力がMatlabで見られないことを意味します。 – patrik

答えて

5

coutの呼び出しはMATLABコンソールには出力されません.MEXのprintf関数を使用する必要があります。

mexPrintf("NAME\n"); 
+0

ありがとうございます! – Learner

関連する問題