2

Simulink.Parameter構造体(私の場合、構造体の構造体)をどのようにに渡しC S-functionますか?

編集:

Simulink.Parameterに関する情報

次の方法で Simulink.Parameter オブジェクトを作成できます。

modelParameters = Simulink.Parameter;
modelParameters.Value = myStruct;
modelParameters.CoderInfo.StorageClass = 'ExportedGlobal';

値は、構造体のmyStruct通常の matlab 構造体です。これは私の場合の様子です: ここに画像の説明を入力

これは、パラメーターを Simulink に渡すための特別なオブジェクト タイプであり、 からアクセスするメカニズムを探していますC S-function

ここMnWEからダウンロードします。

編集2: 私はこのようにパラメータを読みました:

modelParameters_T *modelParameters = (modelParameters_T*)mxGetPr(ssGetSFcnParam(S, PARAM_STRUCT));

しかし、このアプローチが機能しない理由はわかります。Matlab の構造体オブジェクトは C 構造体とは異なります。つまり、メモリ内で連続しておらず、他のプロパティも含まれています。Matlab 構造体を配列にキャストしてから、C の配列を構造体定義にキャストすると思います。

4

1 に答える 1