問題タブ [matlab-coder]

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 投票する
0 に答える
442 参照

c++ - Matlab 画像コンバータの問題

Matlab コーダーの出力を画像処理に使用したい。Matlab コーダーから c++ 出力を作成しました。このコードを使用して、他のアプリケーションに統合したいと考えています。問題は、Matlab コーダーが画像行列をconst unsigned char[...]に生成する方法が正確にわからないことです。作成方法を確認できる可能性があれば大変助かります。同じ方法でイメージを unsigned char[..] に作成し、それをイメージに戻すことができるようにします。

これはMatlabによって生成されたコードです

以下の提案によると、cppファイルからunsigned charを多次元配列に変換する際に問題があります。しかし、私はデータを c[] w[] h[] の形式で表現しなければなりません。次のように、赤、緑、青の情報をどのように c[] に表現するのか混乱しています。私はこれがそれを表現する正しい方法であるかどうか混乱しています(この関数は const unsigned char[] を取得することを目的としていることがわかります)、3次元の c[] w[] h[] 行列で出力を作成します。どんな助けでも素晴らしいでしょう

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

c - emxArray引数を持つCプログラムでMATLAB Coder codegenによって作成されたCライブラリを使用する方法は?

codegen によって作成された C 関数 (C スタティック ライブラリ) は、型const emxArray_uint32_Tの入力引数を取り、型emxArray_struct_Tの値を返します。型が示すように、入力は uint32 の配列で、出力は struct の配列です。

C プログラムでこの関数を使用する方法がわかりません。入力に対して、タイプuint32_Tの配列を宣言するか、タイプemxArray_uint32_Tを使用する必要がありますか? 出力について、出力配列のサイズがわからないので、関数から戻り値を受け取る構造体の配列を宣言するにはどうすればよいですか?

質問をMATLABの回答に入れましたが、運がありません..

ありがとう!

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

matlab - MATLAB 関数ブロックを使用した Simulink での乱数の生成

この質問をグーグルで検索し、ここで質問と回答を検索しようとしましたが、質問に対する明確な回答が見つからなかったため、新しい質問を作成しています. うまくいけば、それはあまり問題になりません!

別のソースから入力を受け取ることになっている「MATLAB 関数」ブロックがある Simulink でシミュレーションを作成しています (このソースを「定数」ブロックと見なすことができます)。入力の MATLAB 関数ブロック。

私の問題は、Simulink シミュレーションを実行するたびに、まったく同じ乱数が得られることです。そして、誰かが私の問題を解決するのを手伝ってくれるかどうか疑問に思っていましたか?

コードは次のとおりです (すべてではありませんが、重要なすべてのコードです)。

私はこの解決策について読みました:

私はさまざまな方法でそれを使用しましたが、成功しませんでした。いくつかの助けが大いに感謝されます! ああ、ところで、私は MATLAB R2012a を使用しています。

前もって感謝します、ニクラス

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

python - c構造体のPython ctypes定義

Matlab コーダーによって生成された c コードを呼び出そうとしています。Matlab は emxArray と呼ばれる ac 構造体を使用して行列を表します (ここに文書化されています: http://www.mathworks.co.uk/help/fixedpoint/ug/c-code-interface-for-unbounded-arrays-and-structure-fields.html)。

私は ctypes の経験がほとんどなく、 c .so で定義された関数にベクトルを前後に渡すために使用できる同等の構造体を作成するのに苦労しています。

これが私がPythonでこれまでに得た場所です...

ただし、これを定義すると:

これはその後動作します

編集:ローランドの提案を片付けて採用し、次を使用してデータを抽出できます

この構造体を使用して C コードからデータを送受信できるかどうかをさらに調査する必要があります。

解決

Roland が提案したように ctypes 構造体を実装してもうまくいきませんでした - 返された値はガベージでした。その答えが最も近かったので、私はその答えを受け入れました...

他の誰かが私と同じくらい多くの時間を無駄にするのを防ぐことができるので、ここで私の解決策を文書化します。

まず、関数の各要素をそれ自体で乗算する単純な matlab 関数を生成し、コーダーを使用してこれを ac .so にコンパイルしました。これは、ctypes を使用して python にインポートされます。コードは次のとおりです...

出力:

お時間とご提案をいただき、ありがとうございました。

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

c++ - Matlab C++ - 動的サイズの出力タイプを受け取る (emxArray_real_T)

コーダーを使用して、いくつかの matlab コードを C++ に変換しました。

void myfunction(const emxArray_real_T *input, emxArray_real_T *output){ ... }

emxArray_real_Tタイプ入力を問題なく送信するようにセットアップしました。を呼び出している C++ で動的サイズの出力を受け取るように設定するにはどうすればよいmyfunctionですか?

コードが更新されました:

これは問題なくコンパイルされますが、エラーが発生します *** glibc detected *** /data/myscript : double free or corruption (!prev): 0x000000000de54920 ***