在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庫。