From 7e3dbc0b3e9bee08f278d494df58ddda97bea647 Mon Sep 17 00:00:00 2001 From: sunwen Date: Fri, 2 Jun 2023 14:02:12 +0800 Subject: [PATCH] Add MatlabWriter. --- src/MatlabWriter.cpp | 21 +++++++++++++++++++++ src/MatlabWriter.h | 20 ++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/MatlabWriter.cpp create mode 100644 src/MatlabWriter.h diff --git a/src/MatlabWriter.cpp b/src/MatlabWriter.cpp new file mode 100644 index 0000000..acdc6a4 --- /dev/null +++ b/src/MatlabWriter.cpp @@ -0,0 +1,21 @@ +#include "MatlabWriter.h" +#include + +MatlabWriter::MatlabWriter(const std::string& aFileName) + : mFileName(aFileName) +{ + mMat = Mat_CreateVer(mFileName.c_str(),nullptr, MAT_FT_MAT5); +} + +MatlabWriter::~MatlabWriter() +{ + Mat_Close(mMat); +} + +void MatlabWriter::write(const Aurora::Matrix& aMatrixs, const std::string& aName) +{ + size_t dims[2] ={(size_t)aMatrixs.getDimSize(0),(size_t)aMatrixs.getDimSize(1)}; + matvar_t* var = Mat_VarCreate(aName.c_str(),MAT_C_DOUBLE,MAT_T_DOUBLE,2,dims,aMatrixs.getData(),0); + Mat_VarWrite(mMat,var,MAT_COMPRESSION_NONE); + Mat_VarFree(var); +} diff --git a/src/MatlabWriter.h b/src/MatlabWriter.h new file mode 100644 index 0000000..672957f --- /dev/null +++ b/src/MatlabWriter.h @@ -0,0 +1,20 @@ +#ifndef MATLABWRITER_H +#define MATLABWRITER_H + +#include "Matrix.h" +#include +#include + +class MatlabWriter +{ +public: + MatlabWriter(const std::string& aFileName); + ~MatlabWriter(); + void write(const Aurora::Matrix& aMatrixs, const std::string& aName); + +private: + std::string mFileName; + mat_t* mMat; +}; + +#endif // MATLABWRITER_H