当前位置: 首页 > news >正文

VS(QT)调用Matlab函数的方法

配置

  • Matlab2024a 64位
  • MATLAB Runtime 2024
  • VS2017 MSVC
  • VS-QT插件

步骤

编写matlab测试代码:

function y = myfunc(a, b)% a, b 是 double 矩阵或向量y = a * b;
end

输入mex -setup C++
选择Microsoft Visual C++ 2017

输入deploytool选择
在这里插入图片描述
将生成的.h和.lib分别放置在对应的文件夹
在这里插入图片描述

附加包含目录:

C:\Users\woshi\source\repos\QT_Matlab\include
D:\Program Files\MATLAB\R2024a\extern\include
D:\Program Files\MATLAB\R2024a\extern\include\win64

附加库目录:

C:\Users\woshi\source\repos\QT_Matlab\lib
D:\Program Files\MATLAB\R2024a\extern\lib\win64\microsoft

附加依赖项:

func.lib
mclmcrrt.lib
libmat.lib
libmx.lib

选择Realse x64

调试–>窗口–>异常设置–>Win32 Exceptions全部不要勾选
在这里插入图片描述
在这里插入图片描述

VS代码:

#include "QT_Matlab.h"
#include <QLabel>
#include <QDebug>
#include <QPushButton>QT_Matlab::QT_Matlab(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);// 手动连接 clicked 信号与槽connect(ui.pushButton, &QPushButton::clicked,this, &QT_Matlab::on_pushButton_clicked);// 1. 初始化 MATLAB 运行时(MCR)if (!mclInitializeApplication(NULL, 0)){std::cerr << "Failed to initialize MCR" << std::endl;}else{std::cout << "Success to initialize MCR" << std::endl;}// 2. 初始化你自己导出的 MATLAB 库if (!funcInitialize()) { std::cerr << "Failed to initialize MATLAB library" << std::endl;}else{std::cout << "Success to initialize MATLAB library" << std::endl;}
}QT_Matlab::~QT_Matlab()
{// 在析构 / 退出时清理funcTerminate();mclTerminateApplication();
}void QT_Matlab::on_pushButton_clicked()
{mwArray aa(1, 1, mxDOUBLE_CLASS, mxREAL);mwArray bb(1, 1, mxDOUBLE_CLASS, mxREAL);mwArray cc(1, 1, mxDOUBLE_CLASS, mxREAL);double a[1] = { 3.0 };double b[1] = { 5.0 };double c[1];aa.SetData(a, 1);bb.SetData(b, 1);myfunc(1, cc, aa, bb);   //目标函数cc.GetData(c, 1);ui.label->setText(QString::number(c[0]));qDebug() << QString::number(c[0]);
}

测试结果:
在这里插入图片描述

参考

QT/VS – 调用matlab的dll文件

http://www.dtcms.com/a/470801.html

相关文章:

  • 企业网站搜索优化网络推广网站首页的logo这么修改
  • fastapi集成各个组件
  • SLAM基础原理介绍
  • 如何利用网站新闻做推广成功营销网站
  • wordpress基础主题站wordpress order插件
  • 福建宁德建设局网站医院网站建设中标
  • 无锡网站制作8大米品牌推广方案
  • 网站开发实践意义seo招聘要求
  • 常州百度网站排名优化网站关键字怎么优化
  • 【Java数据结构】选择排序编码关键细节与避坑指南
  • 什么是企业营销型网站上海做网站的多吗
  • map与multimap
  • 从数据库直连到缓存预热:城市列表查询的性能优化全流程
  • 大兴做网站免费追剧的app下载
  • 建设一个网站需要哪些网站优化 北京
  • CSS 子元素宽高继承与盒模型规则
  • 学习随笔-回流和重绘
  • 石狮网站建设哪家好游戏网站开发有限公司
  • 英语—四级CET4考试—技巧篇—听力—第二步—画选项/做标记
  • 窗口函数之全窗口函数
  • vue前端面试题——记录一次面试当中遇到的题(4)
  • 广州做手机网站咨询网站如何做权重
  • scsi存储通信协议及其发展
  • 地税局内网网站建设深圳印刷网站建设
  • 【Typora——MD编辑器】Typora最新 V1.12.1版:轻量级 Markdown 编辑器详细图文下载安装使用教程
  • SAM-SAM2-SAM3系列(一):Segment Anything Model(SAM)技术详解与实战
  • 利用DeepSeek辅助生成股市行情模拟数据测试电子表格插件rusty_sheet 0.2多表读取功能
  • 包头建站东莞手机微信网站
  • 珠海手机网站建设广州建设网站公司
  • 网站综合查询工具建筑工程网教