0

simulink 用の C S-Function ブロックを作成しています。出力を配列として取得したい

//
FILE *datafile;      
datafile = fopen("datafile.dat","r");
pwork[0] =  datafile;


//


//
static void mdlOutputs(SimStruct *S, int_T tid)
{
    real_T       *y = ssGetOutputPortSignal(S,0);
    real_T *a;
    real_T *b;
    real_T *c;
    void** pwork = ssGetPWork(S);
    fscanf(pwork[0],"%f %f %f",y[0],y[1],y[2]);

}
//

しかし、それはそのようには機能しません.問題はy [1]とy [2]の割り当てにあると思います..

4

1 に答える 1

2

私はMatlabについては知りませんが、scanf呼び出しへの引数はpointersでなければreal_Tならず、既にポインタとして型定義されていない限り、それは機能しません。

また、ポインターfscanfからの読み取りに使用していFILEます。

これが機能するかどうかはわかりません。代わりにこれを試してください:

sscanf(pwork[0], "%f %f %f", &y[0], &y[1], &y[2]);
于 2012-10-01T16:51:22.200 に答える