一叶知秋 发表于 2015-4-23 16:09:36

Qt和MATLAB混合编程

关于Qt和MATLAB混合编程的文章,百度上很少(google不了。。。),最近自己摸索整理了一份资料,在这里分享出来共同学习。因为文章太长,在这里就不贴出来了,有问题可以回帖讨论。。。

网盘地址:
http://pan.baidu.com/s/1dDvpu9r




shasidaran 发表于 2015-4-23 17:07:47

虽然暂时用不到,但赞一个:P

Joey_Chan 发表于 2015-4-23 17:54:41

顶一下

stlcours 发表于 2015-9-1 21:27:30

谢谢。。。。。。。。。。。

imRichardl 发表于 2015-9-23 00:14:08

刚好有用 谢谢·········································

sywh 发表于 2016-1-6 16:41:08

不错不错,赞一个,给有需要的人。

adaluobo 发表于 2016-1-18 22:19:54

最近正好要用qt和MATLAB,谢谢楼主!!!!!

吴雨辰 发表于 2016-6-22 20:07:30

我在win8.1 QT5.3.2 MATLAB2012B环境下,运行楼主的程序没有问题,但我重新写了一个需要传递参数的一个函数后,显示调用该动态库,初始化该动态库什么都没问题,但是由于需要传参,所以需要通过mxCreateDoubleMatrix构造输入mxArray和输出mxArray,但是在编译的时候,会报以下错误,E:\Software_Practice\QtProject\Test3MatlabWithQT\mainwindow.cpp:45: error: undefined reference to `mxCreateDoubleMatrix_730_proxy(unsigned int, unsigned int, mxComplexity)'不知楼主有没有遇到这种问题,已经折腾了一天了:(

一叶知秋 发表于 2016-6-23 20:28:06

本帖最后由 一叶知秋 于 2016-6-23 20:29 编辑

吴雨辰 发表于 2016-6-22 20:07 static/image/common/back.gif
我在win8.1 QT5.3.2 MATLAB2012B环境下,运行楼主的程序没有问题,但我重新写了一个需要传递参数的一个函数 ...
你这个思路可能不太对,matlab的函数应该在.m文件中写,然后导出库文件,在Qt完成传参和接收返回值,如果你想直接在Qt中使用matlab的函数,这可能就需要使用matlab引擎的方式,我文章里有提到

吴雨辰 发表于 2016-6-24 09:18:03

一叶知秋 发表于 2016-6-23 20:28 static/image/common/back.gif
你这个思路可能不太对,matlab的函数应该在.m文件中写,然后导出库文件,在Qt完成传参和接收返回值,如果 ...

对对,我是这么干的,就是在matlab的.m文件里写了一个y=a+b的一个加法函数,把它编成了动态库,所以就需要两个输入参数,和一个返回参数么,然后就在Qt里构造mxArray数组来传递和接收参数啊,但是在调用mxCreateDoubleMatrix()函数构造mxArray时,就提示我undefined reference to "mxCreateDoubleMatrix_730_proxy"的错误,看上去好像是库链接的问题,但是我感觉该用到的库我都添加了啊... :(不知道啥问题...

wpaudia6 发表于 2016-8-5 15:58:46

吴雨辰 发表于 2016-6-24 09:18 static/image/common/back.gif
对对,我是这么干的,就是在matlab的.m文件里写了一个y=a+b的一个加法函数,把它编成了动态库,所以就需 ...

请问解决了吗,我也遇到同样问题。

shy 发表于 2016-10-19 11:07:37

我也遇到了和楼上一样的问题,Qt调用MATLAB,传递参数的时候就会报错,有解决掉这个问题的大神吗?求指导:'(

xhong 发表于 2016-10-26 08:32:58

shy 发表于 2016-10-19 11:07 static/image/common/back.gif
我也遇到了和楼上一样的问题,Qt调用MATLAB,传递参数的时候就会报错,有解决掉这个问题的大神吗?求指导:' ...

我 也遇到同样的问题。我是Qt4.8.5,matlab2012b。win764位
另我在调用楼主的lib和dll时,没有任何报错,但程序总是运行不起来,自动退出。不知什么原因。

shy 发表于 2016-11-1 09:58:12

你得也是需要传参的吗

ysysotof 发表于 2016-11-11 20:29:26

环境:matlab2012b,编译器lcc-win32
这个问题是因为lcc编译出来的是C语言库,在使用时找不到那些函数,是因为我们在Qt中编译的是g++,编译c++的,那些头文件中的函数会找不到,因为命名方式有差异,我现在是把mclmcrrt.h文件中64行改为#define EXTERN_C extern "C",可以编译通过,运行时有效果,但是后台会报一些异常,就是说matlab编译的dll文件是否可以在c++中用

ysysotof 发表于 2016-11-11 20:34:04

我最近也要在qt中调用matlab程序,不知道这种方式可不可行,还是要把matlab程序用C++重写,是关于图像处理的,各位有这方面的经验吗

shy 发表于 2016-11-18 15:43:24

xhong 发表于 2016-10-26 08:32 static/image/common/back.gif
我 也遇到同样的问题。我是Qt4.8.5,matlab2012b。win764位
另我在调用楼主的lib和dll时,没有任何报错, ...

我的问题解决了,还是环境的问题,环境配置对了,就可以了

xhong 发表于 2016-11-24 14:21:15

楼上分享下环境该怎么配嘛

shy 发表于 2016-12-6 11:04:15

我用的是vs-qt组件,借助vs2013,系统是64位的

Syylc120317 发表于 2016-12-6 23:43:31

支持楼主!
页: [1] 2
查看完整版本: Qt和MATLAB混合编程