资料来自网页:http://www.cnblogs.com/muffled/p/3789162.html
读取matioTest.zip中s.mat文件,数据为普通matrix , 注意释放内存
#include <iostream>
#include <cassert>
#include <matio.h>
int main()
{
mat_t *matfp;
const char* matFilePath = "testRes\\s.mat";
matfp = Mat_Open(matFilePath, MAT_ACC_RDONLY);
if (NULL == matfp) {
fprintf(stderr, "Error opening MAT file %s\n", matFilePath);
return EXIT_FAILURE;
}
matvar_t* matVar = NULL;
// read data 'x'
matVar = Mat_VarRead(matfp, "x");
if (matVar) {
assert(matVar->data_type == MAT_T_DOUBLE);
size_t xSize = matVar->nbytes / matVar->data_size;
const double* xData = static_cast<const double*>(matVar->data);
for (int i = 0; i < xSize; ++i) {
std::cout << xData[i] << " ";
}
std::cout << std::endl;
for (int i = 0; i < matVar->rank; ++i) {
std::cout << matVar->dims[i] << " ";
}
std::cout << std::endl;
}
// read data 'y'
matVar = Mat_VarRead(matfp, "y");
if (matVar) {
assert(matVar->data_type == MAT_T_DOUBLE);
size_t ySize = matVar->nbytes / matVar->data_size;
const double* yData = static_cast<const double*>(matVar->data);
for (int i = 0; i < ySize; ++i) {
std::cout << yData[i] << " ";
}
std::cout << std::endl;
for (int i = 0; i < matVar->rank; ++i) {
std::cout << matVar->dims[i] << " ";
}
std::cout << std::endl;
}
// read 'minX' and 'step' is similar
Mat_VarFree(matVar); // note the memory management??
Mat_Close(matfp);
system("pause");
return EXIT_SUCCESS;
}