我一直在为simulink编写一个c s函数块,我希望将输出作为数组

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

最佳答案

我不了解Matlab,但我确实知道scanf调用的参数应该是指针,并且除非real_T被类型定义为指针,否则它将无法正常工作。

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

我不知道这是否行得通,而是试试看:

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

关于c - Matlab CS函数的数组输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12677340/

10-11 16:18