Я хочу реализовать функцию для перевода входной переменной mxArray (из Matlab) в C ++.Для деталей, если входная переменная является ячейкой, она будет упорядочена по вектору. Как ниже,
for (i = 0; i < nrhs; i++) {
if (mxIsCell(prhs[i])) {
mwSize Num = mxGetNumberOfElements(prhs[i]);
vector<vector<int>> V1(Num);
mxArray** ptr = new mxArray * [Num];
mxDouble* p;
for (i = 0; i < (int)Num; i++) {
ptr[i] = mxGetCell(prhs[0], i);
p = mxGetPr(ptr[i]);
V1.push_back(*p++);
}
}
}
В противном случае, если входная переменная является матрицей, я упорядочу ее в массив. Теперь у меня естьпроблема назвать вышеупомянутую переменную.Я должен назвать переменную, соответствующую индексу я.Но я не знаю, как реализовать это в C ++.Не могли бы вы рассказать мне, как это сделать в C ++?
Я немного искал в интернете и обнаружил, что невозможно иметь динамическое имя в C ++.Если это правда, может ли кто-нибудь иметь представление о том, как расположить эти входные переменные, тип которых vector> и двойной массив?Возможно структура?Тогда как инициализировать структуру динамически - это большая проблема для меня.Кроме того, я хочу сделать это, потому что я использую OpenMP, который не может иметь никакой переменной или указателя, связанного с Matlab в параллельных циклах.Это действительно проблема, смущающая меня.