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

c - ヘッダー ファイルのリンク: Matlab エンジンと OpenGL

Matlab Engineを介して Matlab とやり取りし、 Glutを介して OpenGL を利用する C プログラムを作成しようとしています。これらのいずれか (Matlab エンジンまたは Glut) を実行する C プログラムのコンパイルと実行は成功しましたが、両方を使用するプログラムのコンパイルに問題があります。

特に、gcc で次のコマンドを使用していますgcc -o test test.c -I/Applications/MATLAB_R2014a.app/extern/include/ -framework GLUT -framework OpenGL。-I フラグは、engine.h および matrix.h ヘッダー ファイルが配置されているディレクトリへのリンクを示します。コンパイラは、Matlab エンジンとマトリックス ライブラリ関数が未定義のシンボルであると不平を言います。

これが、コンパイルしようとしている test.c ファイルです。今は特に何もする必要はありません。まず、C プログラムで Matlab Engine と OpenGL の両方を使用できるかどうかを確認したいだけです。

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

c - Matlab 変数への C ポインター

大規模な Matlab データ構造に繰り返しアクセスする必要がある C プログラムに取り組んでいます。これは、OpenGL を使用したグラフィックを多用するプログラムであるため、高速である必要があります。

Matlab エンジンでこのデータ構造に繰り返しアクセスすると、時間がかかりすぎるようです (engGetVariable と engPutVariable の呼び出しごとに約 10 ~ 20 ミリ秒)。これは、これらの関数がデータをメモリにコピーするためだと思います。

したがって、データ構造自体で engGetVariable を使用する代わりに、データ構造へのポインターを取得しようとしています。ポインターで engGetVariable を呼び出すと、最初にメモリ内のデータをコピーしなくても、ポインターを逆参照することで C のデータ構造にアクセスできます。しかし、これまでのところこれを機能させることができませんでした。このようなことは可能ですか?

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

c++ - Windows 7 64 ビットで Matlab エンジン 2014a が起動しない - 2013a dll が見つからない

VS2012 または VS2013、Intel コンパイラを使用する C++ プログラムから、matlab 2014a、Win7 64 ビット、64 ビット ビルドを使用して Matlab エンジンを起動できません。Matlab 2013a を使用してエンジンを正常に始動できます。2014a にリンクすると、プログラムは libmwmfl_scalar.dll が見つからず、起動しないと不平を言います。これは 2013 に含まれていた dll ですが、2014a には含まれていないようです (プログラムまたはコンパイラ ランタイム ディストリビューションのいずれかに)。2013a にリンクしても問題ありません。2014a に更新すると、古い DLL を要求するのはなぜですか? すべてのインクルード、ライブラリ、環境を 2014a に変更し、クリーン後に再構築しました。プロパティで libmwmfl_scalar.dll への明示的な参照がなく、すべてのフォルダーを 2014a に変更しました。Matlab を使用する他のものにはリンクしていません。この dll は '

設定は、関連するコンテキストを提供する別の投稿 ( Visual Studio で MATLAB を直接呼び出す (マルチスレッド) ) のこのプロパティ シートと同じです。

Ben - いいえ、私は Mex ファイルを使用していません。これは Matlab を呼び出すコードです

これが私のパスで、2013a と 2014a の両方が存在します。また、2013a の削除、VS の再起動、再構築を試みましたが、それでも古い DLL を探します。

C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\mpirt;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\ia32\mpirt;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\ia32\compiler;C:\Program Files (x86) \Intel\icsxe\2013.1.046\bin;C:\Program Files\MATLAB\R2014a\bin;C:\Program Files\MATLAB\R2014a\bin\win64;C:\Users\Rodney\Anaconda\Lib\site- packages\PyQt4;C:\Program Files (x86)\Intel\Trace Analyzer and Collector\8.1.4.045\bin;C:\Program Files (x86)\Intel\MPI\4.1.3.045\em64t\bin;C:\ Program Files (x86)\Intel\MPI\4.1.3.045\ia32\bin;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\mpirt;C:\Program Files (x86)\ Common Files\Intel\Shared Libraries\redist\ia32\mpirt;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\ia32\compiler;C:\PROGRA~2 \Intel\MPI\411~1.036\em64t\bin;C:\PROGRA~2\Intel\COMPOS~1\bin\intel64;C:\PROGRA~2\Intel\COMPOS~1\redist\intel64\compiler;C :\PROGRA~2\MICROS;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files ( x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Common Files\Seagate\SnapAPI\;C:\Program Files\MATLAB\R2014a\runtime\win64; C:\Program Files\MATLAB\R2014a\polyspace\bin;\win64;C:\Program Files\MATLAB\MATLAB Compiler Runtime\v83\runtime\win64;C:\Program Files\MATLAB\R2013a\runtime\win64;C :\Program Files\MATLAB\R2013a\bin;C:\Program Files\MATLAB\R2013a\bin\win64;C:\Users\Rodney\Anaconda;C:\Users\Rodney\Anaconda\Scripts;C:\PROGRA~2\Gambit-C\v4.7.2\bin;C:\Users\Rodney\AppData\Roaming\cabal\bin; C:\Program Files (x86)\Intel\Trace Analyzer and Collector\8.1.4.045\dll\impi64;C:\Program Files (x86)\Intel\Trace Analyzer and Collector\8.1.3.037\dll\impi64;C: \Program Files\smartmontools\bin;C:\ghc-7.6.3\bin;C:\Program Files (x86)\WinAnt\bin;c:\windows\system32;C:\Users\Rodney\AppData\Roaming\ cabal\bin\;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\\Program Files (x86)\WinAnt\bin;c:\windows\system32;C:\Users\Rodney\AppData\Roaming\cabal\bin\;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\; C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\\Program Files (x86)\WinAnt\bin;c:\windows\system32;C:\Users\Rodney\AppData\Roaming\cabal\bin\;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\; C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\

更新: VS2013 で新しいソリューションとプロジェクトを作成しようとしましたが、ML2014a で動作します。したがって、既存のプロジェクトまたはソリューションに影響を与えるものでなければなりませんが、Matlab への間接的な依存関係がなく、すべてのパスを 2014a バージョンに設定しているため、追跡するのは非常に困難です。私のプログラムは、外部ライブラリ Boost、Intel MKL、Armadillo、Eigen、Quantlib を使用しています。完全に困惑した。

更新 2: Visual Studio 環境外で 2014a にリンクすると、プログラムが実行されることを確認しました。libmwmfl_scalar.dll がないために実行されないのは、デバッグ目的 (「デバッグ/デバッグ開始」または「デバッグ/デバッグなしで開始」) で VS から実行しようとしたときです。そのため、何らかの理由で、プログラム自体が使用していないときにVSがプログラムを実行することを主張しています。

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

matlab - 別の行列へのインデックスとしての疎行列値

S- NxNスパース行列。
A- Mx1 ベクトル。

のゼロ以外の値Sは のインデックスですA。の' 番目のエントリで:の' 番目の行の ゼロ以外の値ごとに、このすべての合計を計算して計算し、それを の' のエントリに入れるような
ベクトルを計算したい。xix
jiSA[j]jix

疑似では、次のようになります。

最も効率的な方法でmatlabでそれを行うにはどうすればよいですか?

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

python - matlab から python に値を返す (辞書として?)

Python用のmatlabエンジンを使用しています。私の目標は、python から matlab スクリプトに情報を渡し、結果を保存することです。必要なすべての値の matlab 配列を作成した場合、これを行うことができましたが、辞書が本当に必要です (したがって、どの値がどの変数に対応するか、または将来 matlab スクリプトを変更した場合に覚えておくことができます)。これは私が試したことです:

MATLAB 関数:

そしてPythonで:

残念ながら、これは私の辞書を返しませんが、何をすべきかわからない matlab.object を返します。私の辞書を返すことは可能ですか、それとも単に matlab から数値を返して Python で辞書を作成する必要がありますか?

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

python - Python 仮想環境から matlab を呼び出す

システムの python から MATLAB を呼び出すことができます。

しかし、仮想環境をロードすると、segfault が発生します。

システム python と仮想環境の両方に対してsetup.py インストール手順を実行しました。

this one のような質問を期待していましたが、DYLD_LIBRARY_PATH明示的に設定する必要がありますが、システムの python を実行するときにその環境変数が設定されていません。

この segfault を引き起こす 2 つの Python 実装の違いは何ですか?

編集:2013年後半の13インチMacbook ProでOS X Yosemiteを使用しています。新しくインストールした仮想環境(仮想マシンではありません)からPython 2.7を使用しています。