matlab c s函数的阵列输出

matlab c s函数的阵列输出,c,matlab,C,Matlab,我一直在为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; r

我一直在为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\u t
已经被类型化为指针,否则它不会工作

此外,您正在使用
fscanf
,它用于从
文件
指针进行读取

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

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

我想你想要的是,如果你想把元素复制到数组中。实际上,它是一个文件指针。很抱歉,我没有提到它'file*datafile;datafile=fopen(“datafile.dat”,“r”);pwork[0]=数据文件;'