問題タブ [matlab-engine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1152 参照

c++ - MEX ファイルのアサーションにより、Matlab がクラッシュする

mex が完全にコンパイルする C++ コードで、matrix.h で定義mxAssertされた-macroを使用しています。呼び出された mex コードでアサーションに違反すると、このアサーションによってプログラムがクラッシュするのではなく、Matlab 自体がクラッシュします。私は何かを逃していますか?それは意図した動作ですか?Matlab のクラッシュ レポートを見ると、原因となるアサーションは私のコードによって発生したものとまったく同じです - 私の記述的な説明を含めて... Matlab が mex コードによって引き起こされたアサーションを認識できるように、特定の方法で mex コードを実行する必要がありますか (同様のキャッチしようとする)?おそらく、mex コードを安全に停止して Matlab プロンプトに戻る別の方法があります。

事前に感謝します。どんな助けでも大歓迎です!

EDIT:コードはコマンドでコンパイルされますmex -v Temp.cpp -g

編集:私のmatlabをひざまずかせる最小限の例:

0 投票する
4 に答える
13790 参照

c++ - C++コード用のMATLAB「engine.h」を含む問題

MATLAB Docからサンプルコードを実行しようとしていますが、Visual Studioでプロジェクトをビルドしようとすると、このエラーが発生します

実際のところ、ドキュメントでは、ヘッダーをリンクする場所を見つけることができません。他に何もする必要がないかのように例が表示されます。

この問題を解決する方法について何かアイデアはありますか?

編集

最初の問題を解決しましたが、ライブラリが見つからないことに関連するエラーが発生します。

ドキュメントに記載されているようにPath変数を設定し、libパスを設定し、いくつかのライブラリを追加しましたが、他に何ができるかわかりません。また、Path変数の変更を有効にするために、VisualStudioを再起動しました。

ここに画像の説明を入力してください 前もって感謝します。

0 投票する
2 に答える
2236 参照

matlab - C++の「engine.h」を使用してMatlabでクォータニオンをプロットする

カルマンフィルターを使用するC++のアルゴリズムがあります。コードのどこかで、クォータニオンq'を予測してから、カルマンフィルターqでクォータニオンを更新します。

予測されたクォータニオンと修正された(更新された)クォータニオンの進化を伴う2つのグラフィックをMatlabにプロットしたいので、処理中にクォータニオン情報をMatlabに送信するために「engine.h」ライブラリを使用しています(実際に送信するのは4x1マトリックスです) 。

だから私の質問は:私が視覚的に情報を抽出できるようにMatlabでクォータニオンをプロットするための最良の方法は何ですか?角度を別々にプロットする方が良いでしょうか?

0 投票する
3 に答える
6336 参照

c++ - データをcv::MatからmxArrayに変換します

C++コードで「engine.h」を使用してMatrixをMatlabに送信したいと思います。実際、私はcv :: Mat内にデータを持っており、mxArrayを送信する必要があります。この式を使おうとしましたが、機能しません。

誰かが変換を行う正しい方法を知っていますか?どんな助けでも感謝されるでしょう。ありがとう。

編集

私はこの方法を見つけました: https ://stackoverflow.com/a/8848711/744859

0 投票する
1 に答える
2900 参照

c++ - C++ から Matlab "engine.h" を正しく使用する

各反復でフレームを処理し、行列を生成するコードがあります。私の最終的な目標は、行列データを matlab に送信して、各フレームでの行列の進化を調べることです。これを実現するために、ヘッダー ファイル (helper.h) で静的変数 Engine を定義しました。

main() プログラムでは、エンジンを 1 回だけ開きます。

そして、matrix.cpp の内部は、Matlab Engine に送信する行列を取得する場所なので、次のようにします。

エンジンへのポインターを最も効率的な方法で使用したいと考えています。matlabエンジンを正しく使用する方法について少し混乱しています。

同じファイルにすべてのコードがあり、反復を使用しないため、matlabのドキュメントと例はまったく役に立たなかったので、どんな助けも歓迎します。前もって感謝します。

編集

エンジンポインターに関する最初の問題が解決されました。解決策は、それを extern として宣言することです。

そしてmain.cppで

0 投票する
3 に答える
1150 参照

c++ - 各反復で行列を送信: Matlab "engine.h" c++

この質問は、この質問で得た問題を解決した後に来ます。カメラからのフレームを処理し、処理されたフレームごとにマトリックスを生成する C++ コードがあります。各マトリックスをmatlabエンジンに送信したいので、実行の最後にすべてのマトリックスを保存しました。これを行う方法について混乱しています。各反復でマトリックスを送信しますが、常に上書きしているため、最後には1つしかありません。コード例を次に示します。

マトリックス.cpp

また、カウンターを使用してさまざまな行列に動的に名前を付けようとしましたが、matlab エンジンでは変数を最初に定義する必要があるため、機能しませんでした。どんな助けでも大歓迎です。ありがとう。

0 投票する
2 に答える
484 参照

c++ - "??? 未定義の関数またはメソッド" が Matlab エンジンのコマンド ウィンドウに表示される

C++ コードで Visual Studio を使用しており、いくつかの変数を MATLAB エンジンに送信しています。これまでのところ問題はありません。MATLAB コマンド ウィンドウが開いていて、次の変数があるとします。

標準の MATLAB 関数を使用できますが、MATLAB のエンジンからのこのコマンド ウィンドウが認識または検出しない新しい function.m (パスを設定した後に MATLAB で正常に動作する) をダウンロードしました。

それら (コマンド ウィンドウと MATLAB) は同期されていると思っていましたが、同期されていないことがわかりました。

コマンド ウィンドウから function.m を使用できるようにするには、どうすればこれを解決できますか? どんな助けでも大歓迎です。

0 投票する
5 に答える
2093 参照

c++ - C /C++コールバックをmatlabエンジンに渡す

次のようなC++ファイルがあります。

  • matlabエンジンを起動します
  • 呼び出しmatlab_optimize()(matlabオプティマイザーの1つを内部で実行するコンパイル済みのmファイル)
  • 結果を出力します
  • エンジンを停止して終了します

これは正常に機能します。2行目を次のように変更します

  • 呼び出しmatlab_optimize(obj_fun)

obj_fun()それ自体が他のコードにコールバックする私のC++コードで定義された関数はどこにありますか。基本的に、内部で使用されるmatlabオプティマイザーでmatlab_optimize、提供された関数ポインターを目的関数として使用する必要があります。

obj_fun()matlabエンジン(すべてを駆動する)を起動するc ++プロセスと通信したいので、スタンドアロンのmexファイルとしてコンパイルすることはできません。

2009年のニュースグループの投稿は、これが不可能であることを示しているようです。次に、Matlab C ++ MathLibraryToolboxはこれを実行できるようです

グーグルで回ると、この生成されたスニペットも表示されます。

これはまさに私が望んでいることのようですが、ファイルは2000年のものであり、matlabのドキュメントにはこの関数への参照がどこにもありません。では、これをどのように使用するのですか?

0 投票する
1 に答える
505 参照

c - エンジン関数: C アプリケーションからの MATLAB の呼び出し

C アプリケーションからユーザー定義の MATLAB 関数を呼び出そうとしていますが、最も単純なエンジン シナリオでさえうまく動作しません。a = 1以下は、MATLAB コマンド ウィンドウに出力するだけのプログラムです。しかし、実行しても何も起こりません!

0 投票する
1 に答える
190 参照

matlab - Matlab の Mex ファイルの違い

Matlab Coder を使用して、matlab プロジェクトから Mex ファイル (.mexw64) を作成しました。問題は、mex ファイルを実行したときの出力が、プロジェクトを通常の方法で実行したときと同じではないことです。多くの場合、数値の変動は非常に小さいです。

5.4463.. -> 5.4465.. など

固定小数点計算に関連する問題があるのではないかと考えています。何を探すべきですか?