//打开选择文件对话框,获取文件路径 QString File_Path = QFileDialog::getOpenFileName(this, "open","../","source(*.cpp *.h *.DAT *.mat);;Text(*.txt);;all(*.*)"); QByteArray ba = File_Path.toLatin1(); const char *rootFile = ba.data(); MATFile *pmatFile = matOpen(rootFile, "r"); if (pmatFile == NULL) { QMessageBox::warning(NULL,tr("文件打开失败"),tr("mat文件打开失败"),QMessageBox::Yes); return; } // 获取文件中变量var; mxArray* Array1 = matGetVariable(pmatFile, "RBR"); //先与变量绑定 mxArray* pF = mxGetField(Array1,0,"data"); //再获取其中域的数据 matClose(pmatFile); // 获取矩阵数据行数; int row = mxGetM(pF); qDebug() << row<<endl; // 获取矩阵数据列数; int column = mxGetN(pF); qDebug() << column <<endl;运行程序之后显示程序异常结束,是什么原因
时间: 2024-04-23 14:24:06 浏览: 151
根据你提供的代码,程序异常结束的原因可能是由于打开的MAT文件不存在或者路径不正确导致的。建议检查一下MAT文件的路径是否正确,并确保文件存在。此外,还需要注意MATLAB版本的兼容性问题。如果MAT文件是用较高版本的MATLAB生成的,而代码使用的MATLAB版本较低,可能会导致程序无法正常读取MAT文件。
相关问题
QString File_Path = QFileDialog::getOpenFileName(this, "open","../","source(*.cpp *.h *.DAT *.mat);;Text(*.txt);;all(*.*)");这个程序怎么选择路径
这段代码是使用Qt框架提供的QFileDialog类来打开一个文件选择对话框,让用户选择需要打开的MAT文件。当用户在对话框中选择了一个文件后,QFileDialog::getOpenFileName函数会返回该文件的绝对路径,并将其保存在变量File_Path中。
具体而言,该函数的第一个参数为QWidget类型的parent对象,用于指定文件对话框的父窗口。在这里,this指针表示当前窗口是文件对话框的父窗口,即文件对话框将在当前窗口上打开。第二个参数是对话框的标题,这里为"open"。第三个参数是对话框打开时显示的目录,这里为上一级目录"../"。第四个参数是过滤器,用于指定文件类型。在这里,过滤器分为三类:source(*.cpp *.h *.DAT *.mat)表示源文件类型(.cpp、.h、.DAT和.mat文件),Text(*.txt)表示文本文件类型(.txt文件),all(*.*)表示所有文件类型。用户在文件对话框中选择一个文件后,函数会返回该文件的绝对路径。
因此,当程序运行到这段代码时,会弹出一个文件对话框,用户可以在其中选择需要打开的MAT文件,然后程序会获取该文件的绝对路径并保存在变量File_Path中。
QString File_Path = QFileDialog::getOpenFileName(this, tr("选择MAT文件"), ".", tr("MAT文件 (*.mat)")); QByteArray ba = File_Path.toLatin1(); const char *rootFile = ba.data(); MATFile *pmatFile = matOpen(rootFile, "r"); if (pmatFile == NULL) { QMessageBox::warning(NULL,tr("文件打开失败"),tr("mat文件打开失败"),QMessageBox::Yes); return; }为什么会没有让用户选的MAT文件的路径
可能是因为没有正确引入需要的库文件,或者没有正确设置Qt项目的资源路径。你可以检查一下你的项目是否正确引入了MATLAB库文件,例如libmat.lib和libmx.lib,以及是否正确设置了库文件的路径。此外,你也可以尝试在代码中打印出File_Path的值,看看路径是否正确。如果路径不正确,可能是因为Qt项目没有设置正确的资源路径,你需要在项目文件中设置正确的资源路径,以便程序能够找到需要的文件。
阅读全文