matlab — чтение переменной из .mat файла в переполнении стека

Я делаю программу, в которой я выполняю некоторую обработку в Matlab, а затем сохраняю результат в файле .mat, используя следующую команду в Matlab:

save data x;

допустим, значение х = 2,

Сейчас я читаю тот же файл data.mat из программы на C ++ в Visual Studio 2010. Моя программа компилируется, и я также могу отлично прочитать имя массивов и их размеры. Теперь проблема в том, что при использовании следующей команды я не может прочитать точное значение х. Он показывает мне некоторые случайные значения каждый раз, когда я запускаю программу.

variable = matGetNextVariable(pmat, &name);

прямо сейчас значение переменной = 50779048 ..

Пожалуйста, направь меня туда, где я делаю ошибки. значение переменной должно быть 2, потому что я сохранил 2 из matlab cammand ..

Я уже проверял этот вопрос, но, кажется, никто не ответил на него,
Чтение .mat файла в C ++

void main(int argc, char **argv)
{
MATFile *pmat;
const char* name=NULL;
mxArray *pa;

/* open mat file and read it's content */
pmat = matOpen("data.mat", "r");
if (pmat == NULL)
{
printf("Error Opening File: \"%s\"\n", argv[1]);
return;
}

/* Read in each array. */
pa = matGetNextVariable(pmat, &name);
while (pa!=NULL)
{
/*
* Diagnose array pa
*/
printf("\nArray %s has %d dimensions.", name,
mxGetNumberOfDimensions(pa));

//print matrix elements
printf("\ndata %d",pa);

//get next variable
pa = matGetNextVariable(pmat,&name);

//printf("\ndata %d",pa);
//destroy allocated matrix
mxDestroyArray(pa);
}

matClose(pmat);
}

Спасибо.

1

Решение

После долгих поисков я нашел ответ. Кто-то уже задавал вопрос, но по-другому. Ниже приводится ссылка на ответ. Я надеюсь, что это может помочь другим.
Matlab API читает файл .mat из c ++, используя контейнер STL

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]