我一直在为simulink.I编写一个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]);
}
//但它不是这样工作的,我猜问题出在分配y1和y2上。
发布于 2012-10-02 00:51:22
我不知道Matlab,但我知道scanf调用的参数应该是指针,除非real_T已经被定义为指针,否则它不会工作。
此外,您使用的是用于从FILE指针读取的fscanf。
我不知道这行不行得通,试试这个:
sscanf(pwork[0], "%f %f %f", &y[0], &y[1], &y[2]);https://stackoverflow.com/questions/12677340
复制相似问题