1

QtCreator 環境で C++ を使用して画像解析を行っています。学習モデルを構築するために、非常に強力な MATLAB の TreeBagger クラスを使用したいと考えています。QtCreator から MATLAB を呼び出し、いくつかのパラメーターを指定して、分類エラーを返すことはできますか? mexファイルを使わずにこれを行うことはできますか?

4

2 に答える 2

2

QProcess の同期プロセス API の例から:

 QProcess gzip;
 gzip.start("gzip", QStringList() << "-c");
 if (!gzip.waitForStarted())
     return false;

 gzip.write("Qt rocks!");
 gzip.closeWriteChannel();

 if (!gzip.waitForFinished())
     return false;

 QByteArray result = gzip.readAll();

この例の概念は、望ましい設定で matlab を実行し、すぐにスクリプトを書き始めることができるプロセスです。書き込み後。チャネルを閉じ、応答を待ってから、matlab から結果を読み取ることができます。残念ながら、私はより直接的な例を提供する経験がありませんが、これはほとんどの場合の概念です。それ以外については、ドキュメントを調べてください。

于 2013-08-04T09:37:48.943 に答える
1

Matlab には、ここで説明する「エンジン」インターフェイスがあり、スタンドアロン プログラムで matlab 関数を呼び出すことができます。engPutVariableデータをバイナリ形式で呼び出して転送できるという利点がありengGetVariableます(プロセスとmatlabの間で共有メモリを使用することで機能すると思いますが、これについてはわかりません)。データを ascii に変換し、ascii からの結果を解析します。

C++ の場合、RAII のラッパー クラスを作成するか、http://www.codeproject.com/Articles/4216/MATLAB-Engine-APIを参照してください。これは既に行われています。

于 2013-08-04T10:03:24.473 に答える