之前弄花了好久弄完了qt调用matlab打包的dll代码,由于之前写的matlab函数没有输出,只有输入时,这个很好解决,我只用传入参数即可,但是现在有个需求是需要输出2个参数,我qt来接收matlab输出的2个参数,如何解决呢,一样的方法,我们看下matlab代码,如下所示该test函数有一个文件路径参数作为输入,输出spo2和pulse这2个值,我们将test.m打包成dll后,接下来在qt中调用该dll,来得到spo2和pulse,qt代码如下所示
void MainWindow::on_btn_po2_clicked()
{
//调用matlab函数
QString p5 = absPath;
mwArray path5(p5.toUtf8().constData());
// 定义spo2和pulse变量
mwArray spo2(1,1,mxDOUBLE_CLASS);
mwArray pulse(1,1,mxDOUBLE_CLASS);
// 调用test函数
test(2, spo2, pulse, path5);
// 将mwArray转换为QString
ui->line_spo2->setText(QString(spo2.ToString()));
ui->line_pulse->setText(QString(pulse.ToString()));
//设置不可更改
// ui->line_spo2->setEnabled(false);
// ui->line_pulse->setEnabled(false);
qDebug()<<spo2.ToString()<<endl;
cout<<pulse<<endl;
QMessageBox::information(this,"提示","计算完成!",QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok);
}
这里我们调用test函数,第一个的值表示输出几个参数,不写默认为0,写了后面写输出的参数,最后一个写输入的参数。很好理解!!!!
点击此处登录后即可评论