Files
Aurora/src/MatlabWriter.cpp

35 lines
995 B
C++
Raw Normal View History

2023-06-02 14:02:12 +08:00
#include "MatlabWriter.h"
2023-06-27 16:10:23 +08:00
#include "Matrix.h"
2023-06-02 14:02:12 +08:00
#include <matio.h>
2023-06-27 16:10:23 +08:00
#include <utility>
2023-06-02 14:02:12 +08:00
MatlabWriter::MatlabWriter(const std::string& aFileName)
: mFileName(aFileName)
{
mMat = Mat_CreateVer(mFileName.c_str(),nullptr, MAT_FT_MAT5);
}
MatlabWriter::~MatlabWriter()
{
Mat_Close(mMat);
}
2023-06-27 16:10:23 +08:00
void MatlabWriter::setMatrix(const Aurora::Matrix& aMatrixs, const std::string& aName)
2023-06-02 14:02:12 +08:00
{
2023-06-27 16:10:23 +08:00
mMatrixs.insert(std::pair<std::string, Aurora::Matrix>(aName, aMatrixs));
}
void MatlabWriter::write()
{
for(auto i= mMatrixs.begin(); i!=mMatrixs.end(); ++i)
{
Aurora::Matrix matrix = i->second;
std::string name = i->first;
int dimsSize = matrix.getDims();
size_t dims[3] ={(size_t)matrix.getDimSize(0),(size_t)matrix.getDimSize(1), (size_t)matrix.getDimSize(2)};
2023-10-08 15:58:43 +08:00
matvar_t* var = Mat_VarCreate(name.c_str(),MAT_C_SINGLE,MAT_T_SINGLE,dimsSize,dims,matrix.getData(),0);
2023-06-27 16:10:23 +08:00
Mat_VarWrite(mMat,var,MAT_COMPRESSION_NONE);
Mat_VarFree(var);
}
2023-06-02 14:02:12 +08:00
}