問題タブ [mex]
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.
c - Mex 疎行列
を使用して MEX で疎行列を作成しましたmxCreateSparse
。
由来する最大値(returnindex1(xi[p][0],xi[p][1])-1)*n*n + (returnindex1(xj[p][0],xj[p][1]))
はn*n*n*n
であり、次元の疎行列を作成しました(n*n)X(n*n)
マトリックス全体を表示すると、ゼロ要素の一部がジャンクになります。また、 の値が大きい場合、n
でセグメンテーション違反が発生しwpoint
ます。
matlab - s-function から呼び出される別の c ファイルにあるときに printf を機能させるにはどうすればよいですか?
別のファイル myFoo.c に実装されている関数 foo() を呼び出すファイル mySFun.c に s-function があります。mySFun.c の mdlOutput 関数内に printf ステートメントを記述すると、正常に動作します。しかし、myFoo.c の関数 foo() 内に printf を配置すると、コマンド ウィンドウに出力が表示されません。
printf が s-function から呼び出される別のファイル内にある場合、printf 機能を有効にするにはどうすればよいですか?
c - MATLAB から MEX で作成された疎行列へのアクセス
ここに示す例に従って、MEX ファイルにスパース行列を作成しました。MATLAB 全体からこの行列にアクセスするにはどうすればよいでしょうか。
また、値を に格納する際にstatic_pr_data
、値を列メジャー形式で格納する必要がありますかic_data
? jc_data
行の主要な形式で保存することは可能ですか (計算が高速化されるため)?
c++ - mex ファイルがクラッシュしています。matlab で MATLAB_MEM_MGR を使用するにはどうすればよいですか?
C++ コードを MEX ファイルにコンパイルしましたが、この MEX ファイルを呼び出すとクラッシュします。MATLAB で次のエラー メッセージが表示されます。
セグメンテーション違反が検出されました
C++ファイルでtry-catchを使用して、catchブロックにメッセージを出力しようとしました。
しかし、印刷メッセージは機能せず、コードは依然としてクラッシュします。
Google を見ると、ほとんどの場合、MathWorks から提供された何らかの形式のメッセージを指しています: http://www.mathworks.de/matlabcentral/newsreader/view_thread/25900
環境変数を設定するように指示します"MATLAB_MEM_MGR=debug"
が、その使用方法を説明していませんか? 誰か説明してくれませんか?
.net - WCF の一意のベース アドレスの問題
WCF がレポートする場所に問題があります...
net.pipe://192.168.0.100/SystemA/Service1.svc/mexPipe' をアクティブ化できませんでした。
ベースアドレスを次のように定義しました。
サービス 1...
サービス 2...
サービスごとに、次のように Mex エンドポイントを定義します...
これにより、次のように2倍のmexエンドポイントが確実に得られるはずです...
ただし、この投稿を見ると、これが機能しているとは思いません...
投稿者は私と同様の構成をしているように見え、応答者は、ベースアドレスは各スキーム内で「一意」ではないと述べていますが、両方が2つの一意のサービスを参照しているため、確かにそうですか?
WCF は、mex エンドポイントが netNamedPipe であることを検出し、それらのベース アドレスを検索できますか? バインディングが「mexNamedPipeBinding」である場合、またはこれは機能しませんか?
matlab - MEX 関数で整数配列を読み取る方法
MATLAB から MEX 関数に uint8 型の整数配列を渡しています。これらの値の読み方は? 私は使用してみました:
しかし、値はがらくたとして出てきます。私も試しました
この場合、ジャンク値も表示されます。
これに対する解決策は何ですか?
基本的にはMEX関数で整数値を読みたいのですが、mxGetPr
double型を返します。
matlab - Matlab での Kinect 画像の取得が遅い
この Mex-function Codeを使用して、Fujitsu Core 2 Duo 2Ghz、2 Gb RAM、Windows7、および Matlab R2010a を使用して、Kinect イメージ シーケンス (RGB および深度) を取得しています。非常に遅いです。どうしてか分かりません。なにか提案を?ありがとう!
このyoutube ビデオは、実行速度がいかに遅いかを示しています。
下の画像は1秒あたりのフレーム数を示しています
------------------sample_niImage.m-----------------------------
c++ - リンクされた外部DLLのstd::vectorに関するMexダイナミックメモリ管理の問題。セグメンテーションエラー
一部のハードウェアと通信する外部C++ライブラリとMATLABをインターフェイスするmexファイルを作成しようとしています。インポートされたライブラリとプリコンパイルされたDLL(.libおよび.dll)は、私のバージョンのVC ++用にハードウェアベンダーから提供されており、問題なくC++で実装できました。
ただし、コードがmex(同じバージョンのVC ++でコンパイルされたもの)として記述されている場合、実行時にセグメンテーションエラーが発生しました。VC ++デバッガーで調査した結果、外部dll関数の1つがデータ型std :: vectorを返し、関数内のどこかにベクターコンテナーにメモリを動的に割り当てようとしていることが原因である可能性があります。自分のmex関数でstd::vectorを使用すると、すべてが正常に機能することはわかっていますが、すべての動的に必要なメモリ管理(?)のために、mexヘッダー自体がstd::vectorコンテナーを自分のコードでラップしていると思われます。 mexコードでメモリを割り当てましたが、プリコンパイルされた.dllでは同じことはできません。
ここで問題は、外部.dllファイルを変更できず、そのソースファイルにアクセスできないため、ダイナミックメモリがMATLAB(おそらく何らかのラッパー)によって管理されるように、この外部dllを操作する方法はありますか。 。?)...そしてそれによってセグメンテーションエラーを回避し、正しいデータを返しますか?または、私の分析が間違っている場合は、私も訂正してください!
アイデアやハックがあれば教えてください、ありがとう!
私のシステム:Windows 7 SP1 32ビット、MATLAB 2009b、Visual C ++2008Pro。
同じ質問を次の場所にも投稿しました:http: //www.mathworks.com/matlabcentral/answers/9294-mex-dynamic-memory-management-issue-with-std-vector-in-linked-external-dll-segmentation-エラー 。アカウントをお持ちの場合は、そこで洞察を共有することもできます。ありがとうございます。
matlab - mexファイルに値を渡す方法
こんにちは、MATLABからmex関数に値を送信したいと思います。値は通常約10桁の長さで、unsignedlonglongデータ型を使用しました。
しかし、mexfileからアクセスするのは困難です。mxGetPrはdouble型を返すので、私がしなければならない型変換はありますか?
c++ - ベクトル クラス定義を使用した Matlab の Mex ファイル
C++ コード ソース ファイルから Mex ファイルを作成して、Matlab で使用しようとしています。ベクトルクラスの定義の扱いがよくわからないため、コンパイルエラーが発生します。コードを修正して機能させる方法を知りたいです。以下に、より明確にするために 4 つのセクション (計算コード、MexFunction コード、Vector クラス定義、およびコンパイル エラー) に分割した関連コードの部分を示します。