我将实现一个函数,它以三种格式将三个数组中的一个导出到二进制.mat文件中。 .mat文件必须能够由MATLAB加载。
int exportMAT(const char *filename, const char var, const double result[], int length)
{
typedef struct
{
uint32_t type;
uint32_t mrows;
uint32_t ncols;
uint32_t imagf;
uint32_t namelen;
} Fmatrix;
Fmatrix header;
header.type=0;
header.mrows=length;
header.ncols=1;
header.imagf=0;
header.namelen=2;
FILE *fileptr;
fileptr=fopen(filename, "w");
char temp ='\0';
//我理解代码,但这对我来说有点不清楚。在下面的4行中会发生什么,你能告诉我括号里面的内容吗?
fwrite(&header, sizeof(Fmatrix),1, filptr);
fwrite(&var, sizeof(char), 1, filptr);
fwrite(&temp, sizeof(char), 1, filptr);
fwrite(result, sizeof(dubble), length, filptr);
fclose(fileptr);
return length;
}
//感谢您的帮助!