問題タブ [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.
c# - 結果を非整列化しますか?
これは、スカラーではなく配列を返すことができるようにするためのこの質問の拡張です。
matlab コーダーを介して matlab コードから生成された C コードは、問題ないように見えます (以下を参照)。結果を C# の世界に戻す方法を見つけようとしています。これが私の最初の試みです:
C# コード
Matlab コード:
生成された C コード
PS:
デビッドの答えを考えると、私は現時点で次のようなことを試みています:
これにより、エントリが 1 つだけ得られます。7 つの nCol と nRow は 1 に等しくなります。
matlab - 埋め込み Matlab 関数の使用
良い一日!
次の点を考慮してください。
square()
「Emebedded Matlab 関数」を使用して、Simulnk でMatlab 関数を使用して方形波を生成したいと考えています。を使用して同じことを試しましたeml.extrinsic
が、次のようなエラーが表示され続けます
次のスクリーン ショットを参照してください。
このブロックの背後にある考え方は、定義された周波数範囲に基づいて方形波を生成することです。
a
= 振幅f
= 頻度dc
= デューティ サイクル
私が間違っていることを教えてください。または、エラーを理解するために読む必要があるものを教えてください。または、私が望むものを達成するための代替方法を提供してください。
前もって感謝します!
string - Embedded Matlabで可変長文字列を使用してスイッチ構造を使用するには?
私はEmbedded MATLABがあまり好きではありませんでした.まさに私が尋ねようとしているような状況のためです. MATLAB API で十分です)。
でもまあ、避けられないこともあると思います。
とにかく、ここに私の問題があります。Embedded MATLAB では、R2010a と同様に、これを行うことはできません。
where<some string>
は反復ごとに変化します。これは、文字列の長さparameter
が可変であるためです。つまり、この の定義parameter
は Embedded Matlab の機能を超えています。
??? 非定数式または空の行列。この式は定数でなければなりません。これは、その値によって式のサイズまたはクラスが決まるためです。定数文字列に対する制限は、数値のスイッチではなく、文字列のスイッチにのみ適用されます。
switch
をより直接的な形式に変更する
もちろん役に立ちません:
文字列のサイズを既知の一定の長さに制限しても役に立ちません。
しかし運がない:
??? 非定数式または空の行列。この式は定数でなければなりません。これは、その値によって式のサイズまたはクラスが決まるためです。定数文字列に対する制限は、数値のスイッチではなく、文字列のスイッチにのみ適用されます。
2 つの方法があります。
- 許容されるすべての文字列を何らかの数値表現にマップし、数値にスイッチを使用します
strcmp(i)
巨大な構造の中で使用しif-elseif-elseif-...-else-end
ます。
どちらも同様に醜い私見ですが、2. はおそらく醜いです (別の外部関数が必要になるでしょうstrcmp
)...
それで、これから抜け出すエレガントな方法はありますか?
matlab - Matlab 関数ブロックの可変サイズ データによるエラー
私は他の多くの人が以前に抱えていた問題を抱えているので、次の質問をする前にいくつかの議論と参考文献を読みました:
Simulink に Matlab 関数ブロックがあり、これを変調器にしたいと考えています。入力としてデータのフレームを取得し、フレームを[nx1]
返す必要があり[lx1]
ます。l=n
l = n/K
K
n
ただし、(非常に単純化された)コードの抜粋
コンパイルされないため
ここでline 2
、可変サイズの行列であることを指定し、if/else
コンストラクタを使用して初期化しました。
コンパイラを満足させるために、Data and Ports Manager での"Variable number of columns"
チェックボックスをオンにすることができますが、これは新しいエラーになります。ak
フィルター。
matlab - Matlab コーダーの再割り当て
matlab 関数に次のようなコードがあります。
したがって、ループの各ステップでは、最初に a のサイズを 2 倍にし、それにランダム関数を適用してから、ゼロをすべて削除します。
これで coder を実行して、最終的に C コードに変換したいと考えています。もちろん、割り当てエラーが発生します。
動的に割り当てられた配列を許可しても役に立ちません。for ループ内にあるため、変数に異なる名前を単純に使用することはできません。
matlab - Simulink でコード生成をオフにする方法は? (関数はスタンドアロン コード生成ではサポートされていません)
自分で別の言語に移植するシミュレーションを作成しています。したがって、Simulink のコード生成機能を使用する必要はありません。コード生成を許可する試みを無効にする方法は?
たとえば、MATLAB Function
ブロック内に次のコードがあります。
エラーが発生します
関数 'imresize' は、スタンドアロン コード生成ではサポートされていません。この関数をシミュレーションで使用する方法については、coder.extrinsic のドキュメンテーションを参照してください。
行のコメントを外すcoder.extrinsic('imresize')
と、新しいエラーが発生します
logical、char、int、fi、single、または double のいずれかが必要です。mxArray が見つかりました。MxArrays は MATLAB インタープリターへの呼び出しから返され、式内ではサポートされません。これらは代入の右側で、外部関数の引数としてのみ使用できます。
行 11 のアドレス指定、if
.
なんで?モデル レベルなどで、コード生成を完全に無効にすることはできますか?
matlab - MATLAB Compiler vs MATLAB Coder
What's the difference between the two?
As far as I understand it, MATLAB Compiler wraps the MATLAB code into a .exe file so that it can be used without installing MATLAB, and only requires the MCR. On top of it MATLAB Builder NE can also be used to produce .Net assemblies to be used with .Net framework instead of the .exe file, but they still require MCR.
Now I don't understand what MATLAB Coder used for? It generates C/C++ code. But is the MATLAB code really converted into C/C++, or is it merely packaged like in the case of MATLAB Compiler? Does it also need the MCR to run?
I understand that this is not exactly a programming question. But I have searched the internet and still haven't found a clear answer. These are very expensive products so I would like to know what I am getting into.