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

c - Matlabから呼び出されたmex関数でMatlabエンジンを使用するにはどうすればよいですか

ユーザーが処理に使用する Matlab 関数を登録できる Matlab から呼び出すことができる mex プログラムを作成したいと考えています。次に、プログラムはこの関数を使用して、別のプログラムからのデータをバックグラウンドで処理します。mex プログラムと外部プログラム間の通信は共有グローバル バッファーを介して行われ、ミューテックス ロックで追跡します。その部分は実際に機能しているようです。問題は、Matlab がシングル スレッドであり、ユーザーが Matlab で作業を続けることができるように、バックグラウンドでデータを処理したいことです。Matlab はシングル スレッドであるため、私の解決策は、新しいスレッドを作成し、そこから Matlab エンジンを起動することです。このために、Matlab から呼び出された mex ファイルから Matlab エンジンを呼び出す必要があります。これを実行しようとすると、プログラムは正常にビルドされますが、新しいエンジンを開こうとすると、Matlab がクラッシュします。以下のテスト例を使用すると、test('process2')Matlab が停止し、ctrl-c を使用すると Matlab がクラッシュします。を使用test('process')すると動作するように見えることがありますが、Matlab はおそらく 10 回の呼び出しのうちの 1 回でクラッシュします。

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

c++ - コードでMatlabエンジンを使用するにはどうすればよいですか( `engOpenSingleUse()`を呼び出すため)?

単純な文字列コマンドをMatlabエンジンに送信しようとしています。

これは私のコードです(行を除いて、私のコードの他の場所にMatlab API関連のコードはありません#include "engine.h"):

コードはコンパイルされ、コンパイラエラーや実行時エラーメッセージなしで正常に実行されます。「Matlabコマンドウィンドウ」が開きます。次のような画面が表示されます。

空のMatlabコマンドウィンドウ

ご覧のとおり、コマンドウィンドウは空です。画面にプロットウィンドウはありません。
このウィンドウにコマンドを手動で入力すると、次のようにエラーなしでプロットが表示されます。

コマンドウィンドウに手動で入力したコマンド

engOpenSingleUse()これは、関数の公式ドキュメントページです:http:
//www.mathworks.com/help/techdoc/apiref/engopensingleuse.html

プロジェクトにライブラリを追加<MatlabInstallationDir>\extern\lib\win64\microsoft\libeng.libしました(x64デバッグ構成でコンパイルしています)。ヘッダーファイル
をインクルードしました。Matlabのメインウィンドウにコマンドを 入力して(関数のドキュメントページで説明されているように)、MatlabエンジンがOSに登録されていることを確認しました。<MatlabInstallationDir>\extern\include\engine.h
!matlab /regserverengOpenSingleUse()

engOpenSingleUse()関数を呼び出しても何も起こらないのはなぜですか?オブジェクト
で文字列コマンドを送信してプロットをプロットすると、プロットウィンドウがポップアップしないのはなぜですか? 私は何が間違っているのですか?PlotCommand

OS:Windows 7 Ultimate x64 SP1、最新の
IDE:Visual Studio 2010、(バージョン10.0.40219.1 SP1Rel)
Matlab:7.8.0(R2009a)

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

c++ - MATLAB エンジンのプロセッサ アフィニティの設定 (Windows 7)

私はc++でアプリケーションを開発しています。アプリケーションのコンポーネントの 1 つは、データ処理に (Matlab エンジンを介して) Matlab を使用します。同時に、データ取得システムがデータをディスクにストリーミングしています。ときどき、集中的な Matlab 処理の期間中に、取得システムがクラッシュします。Matlab のプロセッサ アフィニティを使用可能なプロセッサのサブセットに設定することで、この問題は解決されます。ただし、アプリケーションは 1 日に数回、複数のマシンで起動されるため、毎回アフィニティを手動で設定するのは不便です。エンジンはショートカット経由ではなくアプリケーション内から起動されるため、ショートカットのコマンドライン経由でプロセッサ アフィニティを設定するトリックは機能しません。プログラムでアフィニティを設定する方法を探していましたが、成功は限られていました。

私は次のオプションを検討しました(優先順にランク付けされています):

  1. エンジンの起動時に、アプリケーション内から matlab エンジンのプロセッサ アフィニティを指定します。
  2. 完全な Matlab アプリケーション自体とは別に、matlab エンジンの既定のプロセッサ アフィニティを指定します。
  3. 最後の手段として、Matlab の既定のアフィニティを設定します (エンジンと非エンジンの両方の使用)。Matlab は展開マシンで他の目的に使用されるため、これは最も望ましくありません。他の用途に制限しないことが望ましいでしょう。

アプリケーション内からプロセッサ アフィニティを設定することは可能ですか。そうでない場合、この問題に取り組む正しい方法は何ですか? これらのオプションに関するアドバイス、またはその他の提案/解決策は大歓迎です。

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

ruby - スレッドから呼び出されたときにmatlab-ruby gemが機能しない

Ruby スレッド内で (gem matlab-ruby を使用して) Matlab エンジンを実行したいと考えています。Ruby を使用して、Matlab プロセスを異なるコアに分散するというアイデアです。しかし、スレッド内から新しいエンジンを開始しようとすると、Trace/BPT トラップ: 5 エラーが発生します。

私はルビーに慣れていないので、スレッドなどにはそれほど強くありません。私がやろうとしていることは可能ですか、それともできないことの 1 つにすぎませんか?

「matlab」が必要

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

c++ - engine.h を使用する場合、Matlab を取得してコマンド ウィンドウにエラーと出力を表示する

私は matlab エンジンを使用して、正常に動作する C++ プログラムからいくつかの関数を呼び出しています。データが渡され、関数が呼び出され、結果が数値で表示されます。

ただし、呼び出された matlab 関数にエラーの原因となる行がある場合、何も表示されないため、問題があったかどうか (たとえば、パスが正しくないなど) はわかりません。

さらに、呼び出された関数に含まれる disp や fprintf などの呼び出しは、c++ 経由で呼び出された場合、Matlab コマンド ウィンドウに表示されません...ただし、まったく同じ関数がまったく同じ Matlab コマンド ウィンドウから直接呼び出された場合は表示されます。最後に、save('fileName',var) を呼び出しても変数は保存されませんが、関数が直接呼び出された場合は保存されます。

C++ プログラムからさまざまな matlab 関数が呼び出されたときに、この出力がコマンド ウィンドウに表示されるようにするには、何を設定する必要がありますか?

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

c++ - OpenCV マトリックスから Matlab エンジン、C++ へのデータの送信

C++ と Matlab Engine を使用して、OpenCV 行列から matlab にデータを送信しています。列優先から行優先に変換しようとしましたが、その方法について本当に混乱しています。Matlab ポインター mxArray の処理方法とエンジンへのデータの配置方法がわかりません。

行列を送信するために、matlab と一緒に OpenCV を使用した人はいますか? あまり情報が見つかりませんでしたが、本当に面白いツールだと思います。どんな助けでも大歓迎です。

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

c++ - OpenCV C++ 変数を Matlab に簡単に送信するためのステップ バイ ステップ ガイド

グラフをプロットし、快適な方法で統計を計算するために、 OpenCV変数をMatlabに送信できるようにしたいと考えています。

Matlab エンジンを使用する必要があることはわかっていますが、コードの任意の部分からアクセスできるようにする方法、CV::Mat から Matlab 配列に変換する関数、または列の処理方法について、Web 上にはほとんど助けがありません。この特定のケースでは、-major および row-major です。

OpenCV から Matlab へのステップバイステップの手順は非常に興味深いと思います。なぜなら、OpenCV は非常に人気があり、Matlab はデバッグに大いに役立つからです。

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

c - エンジンユーティリティを使用したMatlab R2007bの未解決の外観

matlab のほとんどのコピー (私の場合は Matlab R2007b) で提供されている matlabdemo.c を実行しようとしていますが、最善の努力にもかかわらず、Visual Studio コマンド プロンプトを使用してプログラムをコンパイルしようとすると、「未解決の外部」エラーが発生し続けます。

「cl -I"C:\Program Files\MATLAB\R2007b\extern\include" matlabdemo.c -link -dll -LIBPATH:"../lib/win64/microsoft/"labeng.lib" でコンパイルしました。

前もって感謝します!

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

c++ - matlab がロケール データベースを見つけられない場合、それはどういう意味ですか?

Linux で matlab インターフェイスを使用する C++ プログラムがあります。C++ プログラムを実行すると、ロケール データベースに関連するエラーが発生します。

これは何を意味するのでしょうか?このエラーは深刻な数値の問題を引き起こしますか?それとも単なる警告ですか?

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

matlab - Fortranの未定義の参照

いくつかの分析を実行するために、ラボメートから提供されたFortranコードをコンパイルしようとしています。このプログラムでは、MATLABスクリプトを呼び出して特定の計算を行います。彼が私にくれたファイルは別のコンピューターで実行するように設定されていて、私はそれらを私のもので動作させようとしています。ACMLおよびMATLABライブラリパスをコンピューター上の対応するパスに変更しました。

私が得ているエラーは次のとおりです。

私が使用しているmakefileは次のとおりです。

私はこれからがらくたをグーグルで検索しました、そしてそれを修正する運がありませんでした。誰かが私が試すためのアイデアを持っているなら、私はそれを大いに感謝します。

ありがとう、ザック