C ++からいくつかの.matデータファイルを読み取る必要があり、ドキュメントを読みましたが、std:vector(modest .mat file size(10M~ 1G)、ただしメモリの問題は真剣に受け止める必要があります)
私の機能は次のようなものです:
#include <stdio.h>
#include "mat.h"
#include <vector>
int matread(const char *file, const vector<double>& pdata_v) {
MATFile *pmat;
pmat=matOpen("data.mat","r");
if (pmat == NULL) {
printf("Error opening file %s\n", file);
return(1);
}
mxArray *pdata = matGetVariable(pmat, "LocalDouble");
// pdata -> pdata_v
mxDestroy pa1; // clean up
return 0;
}
問題は、mxArray *pdata 配列からベクター pdata_v へのコピーを効率的かつ安全に作成するにはどうすればよいかということです。