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调用的参数应该是指针,除非real_T已经将类型定义为指针,否则它将不起作用。

此外,您正在使用fscanfwhich 来读取FILE指针。

我不知道这是否可行,请尝试以下方法:

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