在C语言中,要读取MAT文件数据,可以使用第三方库matio。以下是一个简单的示例代码,演示了如何使用matio库读取MAT文件数据:
#include <stdio.h>
#include <matio.h>
int main() {
// 打开MAT文件
mat_t *matfile = Mat_Open("example.mat", MAT_ACC_RDONLY);
if (matfile == NULL) {
fprintf(stderr, "Error opening MAT file\n");
return 1;
}
// 读取变量
matvar_t *matvar = Mat_VarRead(matfile, "my_variable");
if (matvar == NULL) {
fprintf(stderr, "Error reading variable\n");
Mat_Close(matfile);
return 1;
}
// 获取变量数据
double *data = (double *)matvar->data;
int num_elements = matvar->nbytes / sizeof(double);
// 打印数据
for (int i = 0; i < num_elements; i++) {
printf("%f\n", data[i]);
}
// 释放资源
Mat_VarFree(matvar);
Mat_Close(matfile);
return 0;
}
在上面的示例代码中,首先打开了一个MAT文件,然后读取了名为"my_variable"的变量,并获取了该变量的数据。最后,将数据打印到控制台上,并释放了相应的资源。
需要注意的是,需要在编译时链接matio库。可以在编译命令中添加"-lmatio"参数来链接matio库。