我一直在为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/