来自matlab c s-function的数组输出

时间:2012-10-01 16:32:21

标签: c matlab

我一直在为simulink编写一个c函数块。我想把我的输出作为一个数组

//
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] ..

1 个答案:

答案 0 :(得分:2)

我不知道Matlab,但我知道scanf调用的参数应该是指针,除非real_T被指定为指针它不会起作用。

此外,您正在使用fscanf用于从FILE指针读取。

我不知道这是否有效,请尝试这样做:

sscanf(pwork[0], "%f %f %f", &y[0], &y[1], &y[2]);