Хорошо, я получил довольно неоптимальное решение. Для тех, кто может столкнуться с этой проблемой, вот что я получил до сих пор:
#include "MatlabDataArray.hpp"
#include "MatlabEngine.hpp"
using namespace matlab::engine;
// Start MATLAB engine synchronously
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
std::vector<double> labels_cpp;
// Create figure window
matlabPtr->eval(convertUTF8StringToUTF16String("m = matfile('labelsOfGist.mat'); labels = m.labels;"));
//Get figure handle and Units property
matlab::data::ArrayFactory factory;
matlab::data::TypedArray<double> labels = matlabPtr->
getVariable(convertUTF8StringToUTF16String("labels"));
size_t elements = labels.getNumberOfElements();
labels_cpp.reserve(elements);
std::insert_iterator<std::vector<double>> insert_it(labels_cpp, labels_cpp.begin());
std::copy(labels.begin(),labels.end(), insert_it);
Если кто-то найдет лучшее решение для этого, пожалуйста, дайте мне знать:)