diff --git a/src/MatlabReader.cpp b/src/MatlabReader.cpp index 7e677f0..8218ff5 100644 --- a/src/MatlabReader.cpp +++ b/src/MatlabReader.cpp @@ -23,6 +23,20 @@ MatlabReader::~MatlabReader() Mat_Close(mMatFile); } +std::shared_ptr MatlabReader::readint16(const std::string& aFieldName, size_t& aSize) +{ + if(mMatFile == nullptr) + { + return std::shared_ptr(); + } + matvar_t* matvar = Mat_VarRead(mMatFile, aFieldName.c_str()); + aSize = matvar->nbytes / static_cast(matvar->data_size); + short* resultDara = new short[aSize]; + std::copy((short*)matvar->data,(short*)matvar->data+aSize,resultDara); + std::shared_ptr result(); + return std::shared_ptr(resultDara,std::default_delete()); +} + Aurora::Matrix MatlabReader::read(const std::string& aFieldName) { if(mMatFile == nullptr) diff --git a/src/MatlabReader.h b/src/MatlabReader.h index 3f1d7b2..0504ac8 100644 --- a/src/MatlabReader.h +++ b/src/MatlabReader.h @@ -13,6 +13,8 @@ public: explicit MatlabReader(const std::string& aFilePath); ~MatlabReader(); Aurora::Matrix read(const std::string& aFieldName); + std::shared_ptr readint16(const std::string& aFieldName,size_t& size); + private: mat_t* mMatFile;