Я делаю программу, в которой я выполняю некоторую обработку в Matlab, а затем сохраняю результат в файле .mat, используя следующую команду в Matlab,
save data x;
допустим значение x = 2,
Теперь я читаю тот же файл data.mat из программы C ++ в Visual Studio 2010. Моя программа компилируется, и я также могу отлично читать имя массивов и их размеры .. Теперь проблема в том, что когда я использую следующую команду, я не может прочитать точное значение x. Каждый раз, когда я запускаю программу, он показывает мне несколько случайных значений.
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);
}
Спасибо.