matioライブラリを使用して、std::vector<std::vector<std::vector<double>>>
の内容とその他のデータをMatLabファイルに書き込みます。私はここでチュートリアルを使用しました:http://na-wiki.csc.kth.se/mediawiki/index.php/MatIOC++でmatioを使用しているときにMat_Openが動作しない
Mat_Open
は、NULL
のままです。これは、ファイルに何も書き込めないことを意味します。エラーメッセージはありません。リンク/コンパイルは正常です。Saving mat file
は決して印刷されず、プログラムの終了コードは0
です。私は明白な何かを欠いていますかMATLABファイルを作成する必要があります機能の
内容:
mat_t *mat;
matvar_t *matvar;
unsigned long dims[3] = {100, 100, 3};
unsigned long single_dim[1] = {1};
unsigned long size = 100;
double number = 3.14;
mat = Mat_Open("/home/ruben/data.mat", MAT_ACC_RDWR);
if(mat != NULL) {
std::cout << "Saving mat file" << std::endl;
matvar = Mat_VarCreate("matrix", MAT_C_DOUBLE, MAT_T_DOUBLE, 3, dims, matrix, 0);
Mat_VarWrite(mat, matvar, MAT_COMPRESSION_ZLIB);
Mat_VarFree(matvar);
matvar = Mat_VarCreate("number", MAT_C_DOUBLE, MAT_T_DOUBLE, 1, single_dim, &number, 0);
Mat_VarWrite(mat, matvar, MAT_COMPRESSION_ZLIB);
Mat_VarFree(matvar);
Mat_Close(mat);
}
私は#include <matio.h>
を使用してライブラリが含まれ、-std=c++11 -L/usr/lib -lmatio -lz
とリンク。どんな助けもありがとうございます。
編集:私は、GitHubの上でプロジェクトを発見した問題としてこれを提出:プロジェクトの著者のいくつかの助けを借りて、https://github.com/tbeu/matio/issues/45