#include "MatlabObject.h" #include #include #include using namespace matlab::engine; MatlabObject::MatlabObject(QObject *parent) : QObject(parent) { } MatlabObject::~MatlabObject() { } void MatlabObject::RunMatlabFile(const QString& strFile) { QString strMatlabRun = QString("run('%1')").arg(strFile); QTextCodec* code = QTextCodec::codecForName("utf-8"); std::string strRun = code->fromUnicode(strMatlabRun.toUtf8().data()).data(); std::u16string utf16_str = string2u16string(strRun); // 启动MATLAB Engine std::unique_ptr matlabPtr = startMATLAB(); if (matlabPtr) { // 运行M文件 matlabPtr->eval(utf16_str); } } std::u16string MatlabObject::string2u16string(std::string& str) { std::wstring_convert, char16_t> convert; std::u16string utf16_str = convert.from_bytes(str); return utf16_str; }