問題タブ [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 に答える
402 参照

c - GTK+2 C コードから matlab/octave 関数を呼び出す方法

組み込みの matlab/octave 関数を GTK+2 C コードから呼び出す方法。Mex ファイルで C コードからオクターブ関数を呼び出す方法は知っていますが、GTK+2 C コードから matlab/オクターブ関数を呼び出す方法がわかりません。Mex ファイルを使用して GTK+2 C コードから matlab/octave 関数を呼び出すことは可能ですか? GTK+2 C コードを使用して GUI を作成し、matlab/octave 関数を使用して 2 つの数値の加算結果を表示するとします。インターネットで検索しましたが、探しているものが見つかりませんでした。GTK+2 に必要なフラグがどのように追加されるのか、matlab/octave からコンパイルしようとするかどうかはわかりません

このコードを投稿しています。エラーなしでコンパイルする方法を教えてください。

mkoctfile --mex addition_GUI.cエラーが発生してコンパイルしようとするとaddition_GUI.c:1:20: fatal error: gtk/gtk.h: No such file or directory compilation terminated.

ここにコードがあります

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

matlab - コマンド ラインを使用して Simulink モデルを 1 ステップ実行する

C++ プログラムから制御している Simulink モデルを指定しました。Matlab エンジンから、与えられたすべての入力に対して一度に 1 ステップずつ Simulink を実行したいと考えています。C++ プログラムからシミュレーションを 1 ステップずつ実行するにはどうすればよいですか?

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

matlab - 同じマシンで matlab の複数のコピーを生成する

私は大きな問題に直面しています。Matlab エンジン (engOpen() など) を使用して呼び出す埋め込みの Matlab 関数を含む複雑な C アプリケーションを構築しました。次のことが起こります。

  • このアプリケーションの複数のインスタンスを、各コアに 1 つずつ、マシン上で生成します
  • でも!... その後、アプリケーションの速度が低下して停止します。実際、私の 16 コア マシンでは、アプリケーションの速度が約 16 分の 1 に低下します。
  • これは、マシンごとに開始された matlab エンジンが 1 つしかなく、16 個のインスタンスすべてが同じ matlab のコピーを共有しているためであることに気付きました。
  • これをmatlab GUIで再現しようとしましたが、同じ問題です。GUI で 14 秒かかるプログラムを実行し、2 つの GUI で同時に実行すると 28 秒かかります

これは私にとって大きな問題です。なぜなら、matlab を使用せずに C アプリケーション全体を再プログラムしなければならない場合、締め切りに間に合わないからです。matlab には並列プログラミング用のコマンドがあることは知っていますが、私の matlab 呼び出しは C アプリケーションに埋め込まれており、C アプリケーションの複数のインスタンスを実行したいと考えています。繰り返しになりますが、締め切りに間に合わないため、C アプリケーション全体をリファクタリングすることはできません。

これに対する解決策があるかどうか誰でも教えてください (たとえば、同じマシンで複数の matlab プロセスを実際に開始するなど)。追加のライセンスの料金を支払うつもりです。現在、すべてのマシンに完全にライセンスされた matlab がインストールされています。

どうもありがとうございました!

編集

Ben Voigt さん、ご協力ありがとうございます。Matlab の 1 つのインスタンスが既に複数のコアを使用していることがわかりました。実際、1 つのインスタンスを実行すると、4 つのコアが完全に使用されていることがわかります。Matlab の 2 つのコピーを実行すると、8 コアをフルに活用できます。したがって、実際には並行して実行されます。ただし、2 つのインスタンスが 2 倍の処理能力を使用しているように見えますが、それでも 2* の速度低下が発生します。したがって、2 つのインスタンスは 2 倍の結果を得て、計算能力の合計は 4 倍になるようです。それはなぜでしょうか?

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

matlab - Matlab で特定のステップのシミュレーションを開始する

特定の期間にシミュレーションを起動する必要がある simulink モデルを使用しています。現在私は使用しています

このアプローチの問題は、シミュレーションが終了してもう一度開始すると、最初から開始され、シミュレーションの進行状況がすべて失われることです。ここで、最後の状態からシミュレーションを実行したいのですが、これを行う方法は?

0 投票する
0 に答える
375 参照

c++ - Visual Studio 2010 で matlab R2012a のリンク エラーを解決する方法は何ですか?

Visual Studio 2010 および Matlab R2012a (32 ビット) を 32 ビット プラットフォームで使用する場合:

matlabエンジンを使用して、C ++でmatlabから関数を呼び出したいだけです。別のソリューションで matlab 関数の出力を取得すると、うまく機能します。追加のインクルードパスと追加のライブラリパスを設定するなど、メインプロジェクトで同じ設定を行い、リンカー入力も設定しました。また、オペレーティング システムのパス環境変数を設定しました。しかし、うまくいきません!私のコードは:

次のエラーが表示されます。

私はこれを読みましたが、まったく役に立ちませんでした。これらのエラーに直面した他のすべての人は、リンカー入力にライブラリを追加するステップを逃しました。しかし、私はそれを設定して数回チェックしました。

別のプロジェクトとして機能し、別のソリューションでは機能しないのはなぜですか? 私は混乱しました!プロジェクトでopenGL32を使用しています。したがって、opengl と matlab エンジンの使用には互換性がないと思います。

以前に試した方法を教えてください。

どうもありがとうございます!

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

c++ - 並列ループ内の Matlab エンジン

並列化されたコード内から複数の matlab エンジンを利用する際に問題が発生しています。を使用して複数のエンジンを正常に生成できますengOpenSingleUseが、複数のエンジンと通信できません (つまり、engPutVariable失敗する呼び出し)。

いつものように、最小限の (VS) 例:

何か案は?Win x64 で Matlab R2012b を使用しています。