#include <iostream>
#include "matio.h"
#include "boost/multi_array.hpp"
void save_file(array_type& Var1, array_type& Var2, array_type& Var3) {
const char* filename = "filename.mat";
mat_t *mat;
matvar_t *matvar;
//gernerating the file
mat = Mat_Open(filename, MAT_ACC_RDWR);
// Var1
matvar = Mat_VarCreate("Name1", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, {Var1.shape()[1], Var1.shape()[0]}, &Var1 [0][0], 0);
Mat_VarWrite( mat, matvar, 0);
Mat_VarFree(matvar);
// Var2
matvar = Mat_VarCreate("Name2", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, {Var2.shape()[1], Var2.shape()[0]}, &Var2 [0][0], 0);
Mat_VarWrite( mat, matvar, 0);
Mat_VarFree(matvar);
// Var3
matvar = Mat_VarCreate("Name3", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, {Var3.shape()[1], Var3.shape()[0]}, &Var3 [0][0], 0);
Mat_VarWrite( mat, matvar, 0);
Mat_VarFree(matvar);
Mat_Close(mat);
}
void save_matrix(mat_t *mat, matvar_t *matvar, array_type& matrix) {
// arbitrary matrix
matvar = Mat_VarCreate("Name", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, {matrix.shape()[1], matrix.shape()[0]}, &matrix [0][0], 0);
Mat_VarWrite( mat, matvar, 0);
Mat_VarFree(matvar);
}
template<typename ...Args>
void save_file2(Args ...Arguments) {
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSAibWF0aW8uaCIKI2luY2x1ZGUgImJvb3N0L211bHRpX2FycmF5LmhwcCIKCnZvaWQgc2F2ZV9maWxlKGFycmF5X3R5cGUmIFZhcjEsIGFycmF5X3R5cGUmIFZhcjIsIGFycmF5X3R5cGUmIFZhcjMpIHsKCgljb25zdCBjaGFyKiBmaWxlbmFtZSA9ICJmaWxlbmFtZS5tYXQiOwoKCW1hdF90ICptYXQ7CgltYXR2YXJfdCAqbWF0dmFyOwoKCS8vZ2VybmVyYXRpbmcgdGhlIGZpbGUKCW1hdCA9IE1hdF9PcGVuKGZpbGVuYW1lLCBNQVRfQUNDX1JEV1IpOwoKCS8vIFZhcjEKCW1hdHZhciA9IE1hdF9WYXJDcmVhdGUoIk5hbWUxIiwgICBNQVRfQ19ET1VCTEUsIE1BVF9UX0RPVUJMRSwgMiwge1ZhcjEuc2hhcGUoKVsxXSwgVmFyMS5zaGFwZSgpWzBdfSwgJlZhcjEgWzBdWzBdLCAwKTsKCU1hdF9WYXJXcml0ZSggbWF0LCBtYXR2YXIsIDApOwoJTWF0X1ZhckZyZWUobWF0dmFyKTsKCgkvLyBWYXIyCgltYXR2YXIgPSBNYXRfVmFyQ3JlYXRlKCJOYW1lMiIsICAgTUFUX0NfRE9VQkxFLCBNQVRfVF9ET1VCTEUsIDIsIHtWYXIyLnNoYXBlKClbMV0sIFZhcjIuc2hhcGUoKVswXX0sICZWYXIyIFswXVswXSwgMCk7CglNYXRfVmFyV3JpdGUoIG1hdCwgbWF0dmFyLCAwKTsKCU1hdF9WYXJGcmVlKG1hdHZhcik7CgoJLy8gVmFyMwoJbWF0dmFyID0gTWF0X1ZhckNyZWF0ZSgiTmFtZTMiLCAgIE1BVF9DX0RPVUJMRSwgTUFUX1RfRE9VQkxFLCAyLCB7VmFyMy5zaGFwZSgpWzFdLCBWYXIzLnNoYXBlKClbMF19LCAmVmFyMyAgWzBdWzBdLCAwKTsKCU1hdF9WYXJXcml0ZSggbWF0LCBtYXR2YXIsIDApOwoJTWF0X1ZhckZyZWUobWF0dmFyKTsKCglNYXRfQ2xvc2UobWF0KTsKfQoKdm9pZCBzYXZlX21hdHJpeChtYXRfdCAqbWF0LCBtYXR2YXJfdCAqbWF0dmFyLCBhcnJheV90eXBlJiBtYXRyaXgpIHsKCQoJLy8gYXJiaXRyYXJ5IG1hdHJpeAoJbWF0dmFyID0gTWF0X1ZhckNyZWF0ZSgiTmFtZSIsICAgTUFUX0NfRE9VQkxFLCBNQVRfVF9ET1VCTEUsIDIsIHttYXRyaXguc2hhcGUoKVsxXSwgbWF0cml4LnNoYXBlKClbMF19LCAmbWF0cml4IFswXVswXSwgMCk7CglNYXRfVmFyV3JpdGUoIG1hdCwgbWF0dmFyLCAwKTsKCU1hdF9WYXJGcmVlKG1hdHZhcik7Cn0KCnRlbXBsYXRlPHR5cGVuYW1lIC4uLkFyZ3M+CnZvaWQgc2F2ZV9maWxlMihBcmdzIC4uLkFyZ3VtZW50cykgewoKfQ==