6

Simulink でカスタム MATLAB 関数を使用したいと考えています。これまでのところ、組み込みの MATLAB 関数ブロックを配置することでそれを行ってきました。ただし、カスタム関数に別のカスタム関数が含まれている場合、コンパイル プロセスは失敗します。

シミュレーションに埋め込もうとしている関数の例を次に示します。

function [c, d, iterationsCount] = decodeLDPC(y, H, variance)
Lci = initializeLq(y, H, variance);
Lr = getLr(Lci);
[Lq, c] = getLq(Lci, H, Lr);
iterationsCount = 1;

while(sum(mod(c * H', 2)) ~= 0)
    Lr = getLr(Lq);
    [Lq, c] = getLq(Lq, H, Lr);
    iterationsCount = iterationsCount + 1;
end;
G = getGeneratorMatrix(H);
d = c/G;

whereinitializeLqgetLrもカスタム関数です。

シミュレーションで上記の機能を実装する方法はありますか?

4

1 に答える 1

1

EML ブロックから外部 MATLAB 関数を呼び出すには、コマンドeml.extrinsicを使用する必要があります。たとえば、これを EML 関数の先頭に置くことができます。

eml.extrinsic('getLr', 'initializeLq');

これらの関数を呼び出せるようにします。詳細については、ドキュメントを参照してください

于 2010-04-29T01:11:21.343 に答える