matlab生成dll方法的心得体会
- 格式:doc
- 大小:408.50 KB
- 文档页数:15
matlab实训心得体会《MATLAB实训心得体会》一、引言随着科学技术的飞速发展,数值计算和仿真技术在各个领域的应用越来越广泛。
MATLAB作为一款强大的数学计算软件,在工程、物理、经济等多个领域都发挥着重要的作用。
为了更深入地掌握MATLAB的应用,我参加了为期一个月的MATLAB实训项目。
通过这次实训,我对MATLAB有了更全面的认识,也收获了许多宝贵的经验和技能。
二、实训过程在实训过程中,我们主要进行了以下几个方面的工作:1.基础知识学习:首先,我们系统地学习了MATLAB的基础知识,包括语法、数据类型、函数、程序流程控制等。
这些基础知识是后续学习的基础,对于我们理解和应用MATLAB至关重要。
2.编程实践:在掌握了基础知识后,我们开始进行编程实践。
通过编写各种类型的程序,如矩阵运算、数据处理、图形绘制等,来提高我们的编程能力和解决问题的能力。
3.项目实战:最后,我们参与了几个实际项目。
在这些项目中,我们不仅将所学的知识应用到实际问题中,还学会了如何与团队成员协作、如何解决突发问题等。
三、实训收获经过一个月的实训,我取得了显著的进步,具体表现在以下几个方面:1.提高了编程能力:通过大量的编程实践,我的MATLAB编程能力得到了很大的提高。
现在,我已经能够熟练地运用MATLAB解决各种复杂的问题。
2.加深了对MATLAB的理解:实训让我更深入地了解了MATLAB的工作原理和应用场景。
我意识到,MATLAB不仅仅是一款编程软件,更是一个强大的数学计算和仿真平台。
3.培养了团队协作能力:在项目实战中,我学会了如何与团队成员进行有效的沟通和协作。
我们共同解决问题、分享经验,最终完成了项目目标。
4.增强了自信心:通过实训,我成功地解决了许多实际问题,这让我对自己的能力和潜力充满了信心。
我相信,在未来的学习和工作中,我会更加自信地面对各种挑战。
四、展望未来虽然我在实训中取得了一定的成绩,但我深知自己还有很多不足之处需要改进。
利用Matlab自带工具箱生成Dll和EXE文件想到后期开发需要用到matlab与vb或者其他语言进行编程操作,边想着如何利用matlab强大的功能,而又脱离其软件本身进行开发。
利用DLL文件与VB混编进行开发是方法之一。
本以为是一个很简单构建过程,不过还是在不经意间浪费了两天时间。
回顾整个安装过程,主要还是没有对整体进行构建,没有借鉴前人的经验啊。
构建过程中遇到很多问题。
这里简单总结一下安装过程,顺便把Matlab生成dll文件,以及打包生成EXE文件的过程做一下介绍。
我的版本好为:MATLAB R2009a一、生成独立可执行的程序(dll and exe文件)步骤1、安装编译器。
可有多种选择,本机安装的是Microsoft Visual C++ 6.0(必须装);2、设置编译器。
在matlab命令行输入mbuild -setup,选择安装的编译器为Microsoft Visual C++ 6.0;这里需要的注意的是,编译器路径,编译文件路径的选择,我选择的都是与Microsoft Visual C++ 6.0相关的默认文件夹。
在看到Done字样后,开始在Matlab中设置编译参数。
3、输入deploytool命令(其他版本可能为matcom等),出现以下界面:4、设置相关的参数。
这里可以做很多操作,如图所示,最终结果可生成可供VB调用的dll文件。
启动deploytool后将主程序放到main function里,其他子程序放到other files里,如果有c程序,则放到c/c++ files里.加入你想要编译的m文件,(要加入到自己命名的主目录下,如果还有其他非m文件,放到other files里面)按下编译器就可以编译了.编译完成后会,就会在当前目录下生成这两个文件夹distrb src5、编译的最终结果如下图所示.另外,进行打包操作.我选择了Matlab Compiler编译出可直接运行的EXE文件。
matlab实训心得体会matlab实训心得体会精选2篇(一)在进行MATLAB实训过程中,我获得了很多宝贵的经验和体会。
首先,MATLAB是一个非常强大且灵活的工具,可以用于各种数学和科学计算,编程和数据可视化任务。
通过实践,我熟悉了MATLAB的基本语法和功能,能够编写简单的脚本和函数来解决问题。
其次,实训过程中对于问题的分析和解决能力得到了锻炼。
在遇到具体问题时,我学会了用MATLAB的库函数和工具箱来解决问题,如图像处理工具箱,信号处理工具箱等。
同时,也学会了通过查阅MATLAB的文档和在线资源来获取帮助和解决困难。
第三,实训中的案例分析对我总结和应用知识起到了很大的帮助。
通过分析实际问题并编写相关的MATLAB代码,我更深入地了解了MATLAB的使用方法,并且能够将其应用到实际生活和工作中。
最后,通过与同学的合作和讨论,我了解到MATLAB的应用范围非常广泛,可以应用于各个领域,如工程、科学、金融等等。
同时,也学到了他们的一些解决问题的方法和技巧,这对我提高MATLAB的应用水平非常有帮助。
总的来说,通过这次MATLAB实训,我不仅学会了使用MATLAB这个强大的工具,还提高了问题的分析和解决能力,并且通过实际应用案例,对MATLAB的应用有了更深入的认识。
这对我今后的学习和工作都非常有帮助。
matlab实训心得体会精选2篇(二)在参加Maya实训的过程中,我收获了很多经验和技能,也体会到了一些心得。
首先,Maya实训让我更加熟悉了Maya这个三维建模和动画软件。
通过实践操作,我学会了如何使用Maya的各种工具和功能,包括建模、贴图、动画等等。
这让我对于Maya的理解更加深入,也提升了我的技能水平。
其次,Maya实训让我明白了建模和动画的重要性。
在实训过程中,我需要根据需求进行建模和动画的设计,这要求我有创意和细致的操作能力。
通过不断地练习和尝试,我逐渐掌握了如何通过建模和动画来表达自己的想法和创作。
matlab实训心得体会(通用23篇)matlab实训篇1自己刚刚接触matlab有半个学期的时间,说实话我现在对MATLAB还是摸不着头脑,一方面是自己接触的时间太短,另一方面,就是自己在上机方面投入的时间有限,实践比较少。
现在,我对MATLAB的印象仅仅在解决习题和绘制图形上,但是我很喜欢MATLAB的简单的语法,易于绘制图形,编程也非常容易, 并且具有功能强大的开放式的toolbox。
因此,尽管我一直没有这方面的应用,但是我还是对它非常感兴趣,自己正打算暑假好好研究研究MATLAB。
下面是我学习MATLAB在理论和实践方面的一点心得与体会,可能有些地方自己理解的不是很正确,但是随着学习的深入,我想我可以发现自己的错误所在。
首先我想说的是,在理论方面,在学习MATLAB过程中,我感觉到它和c语言有许多相似之处,他有c语言的特征,但是比c语言编程计算更加简单,适合于复杂的数学运算。
但是MATLAB跟其他语言也有着很大的不同。
现在用的比较多的编程语言,除了MATLAB就应该是c、c++、VHDL,VB和Delphi也接触过,如果自己抱着“把其他语言的思想运用在MATLAB里面”的话,那么我想,即使程序运行不出错,也很难把握MATLAB的精髓,也就很难发挥MATLAB的作用了。
众所周知MATLAB是一个基于矩阵运算的软件,但是,真正在运用的时候,特别是在编程的时候,许多人往往没有注意到这个问题。
在使用MATLAB时,受到了其他编程习惯的影响,特别是经常使用的C语言。
因此,在MATLAB编程时,for循环(包括while循环)到处都是。
.这不仅是没有发挥MATLAB所长,还浪费了宝贵的时间。
我这里想说的一点是,往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++、C的思想。
MATLAB博大精深,涉及的内容很多,所以,我认为不要试图掌握MATLAB的每一个功能,熟悉和你专业最相关的部分就可以了,这也是老师在课堂上经常说的。
学习Matlab心得体会-互联网类《学习 Matlab 心得体会-互联网类》在如今这个互联网飞速发展的时代,各种软件和工具层出不穷,而Matlab 绝对是其中的佼佼者。
回想起我学习 Matlab 的历程,那可真是一段充满挑战与乐趣的奇妙之旅。
最开始接触 Matlab ,是在大学的一门课程里。
当时只觉得这东西看起来高大上,一堆复杂的命令和函数,搞得我一头雾水。
但随着课程的推进,我不得不硬着头皮去啃这块“硬骨头”。
记得有一次,老师布置了一个作业,让我们用 Matlab 实现一个图像的边缘检测。
这对于当时的我来说,简直就是一场噩梦。
我盯着电脑屏幕,看着那密密麻麻的代码示例,感觉自己就像掉进了一个数字的迷宫。
我开始一点点地尝试,从最基础的读取图像数据开始。
那过程真的是小心翼翼,就怕一个不小心输错了什么,前功尽弃。
好不容易把图像读进来了,接下来又要选择合适的边缘检测算法。
什么 Sobel 算子、Canny 算法,每个都要去了解原理,然后试着在 Matlab 里实现。
我一边翻着教材,一边在网上搜索各种教程和示例代码。
有时候,看着那些代码,感觉每个字母都认识,但是组合在一起就完全不知道是什么意思。
但我这人有个倔脾气,越是难搞的东西,我就越不服输。
经过无数次的调试和修改,终于,在我快要崩溃的时候,程序跑通了!当我看到那个经过处理后清晰显示出边缘的图像时,那种成就感简直无法用言语来形容。
就好像我亲手解开了一个超级复杂的谜题,心里那个美呀!在之后的学习中,我发现 Matlab 真的是个神奇的工具。
它不仅仅能处理图像,还能进行各种数学计算、数据分析,甚至可以做仿真模拟。
有一次,我们小组要做一个关于通信系统的仿真项目。
大家分工合作,我负责用 Matlab 来搭建模型和进行性能分析。
一开始,我心里还挺没底的,毕竟这是个比较复杂的系统。
但当我真正深入进去,才发现 Matlab 的强大。
我可以轻松地定义各种参数,调整算法,然后观察系统的性能变化。
matlab学习心得体会(精选3篇)ma tlab学习心得体会(精选3篇)首先我想说的是,matla b跟其他语言不一样(我用的比较多的编程语言,除了matlab就应该是c或c++了,VB和Delphi也接触过,我想版面(matlab版)大部分人也差不多),如果你抱着“把其他语言的思想运用在matla b里面”的话,那么我想,即使程序运行不出错,也很难把握mat lab的精髓,也就很难发挥matlab的作用了。
所以,如果你是希望matlab作为VC的附属品,即你不想在matlab上面花太多功夫,只纯粹想用matlab来完成VC做不了或很难做成的任务的话,那么,这篇文章你也不需要再阅读下去了;如果你是希望掌握一门语言、一个工具,使它更有效为你服务的话,那么,希望本文对你有所帮助。
Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,fr循环(包括hi le 循环)满天飞…………..这不仅是暴殄天物(没有发挥mat lab所长),还浪费了你宝贵的时间。
对此,版友MVH在他的“MATLAB 小技巧”一文中也有所涉及,雷同的东西我也就不重复了,matlab的“帮助”里面也有相关的指示。
我这里想说的一点是,初学者往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++的思想。
举个例子吧,下面的代码是我的一个师弟写的,我想他接触matlab 也有2、3年时间了(在此说明一下,接触2、3年并不是表示每天都会跟mat lab打交道,我本人也不是,只是在一年某几个时间段里面连续使用),但是仍然会出现类似的问题:上面的代码实现了一个目的――检查信号i mf1(一个向量)是否存在绝对值大于1的点,这显然是基于C++的思想写出来的。
matlab生成dll方法的心得体会(推荐五篇)第一篇:matlab生成dll方法的心得体会将MATLAB函数编译成dll 供VC调用的方法1简介1.1 MATLAB简介MATLAB名字是由MATrix和 LABoratory 两词的前三个字母组合而成。
是美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。
经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB 正式推向市场。
目前,MATLAB己经成为应用最广泛的科学工程计算软件,它广泛的应用于自动控制、数学运算、信号分析、图象处理、财务分析等各行各业。
用MATLAB编写的数学运算及图像处理等程序十分简单,在MATLAB里有大量的MATLAB库函数,包括初等数学函数、线形代数函数、矩阵操作函数、数值计算函数、特殊数学函数、插值函数等等,还可以利用MATLAB的编译工具将m文件方便的转化为CC++语言、可执行程序(exe)、动态连接库文件(dll)、COM组件等等,并可直接供CC++语言调用。
为什么要用VC与MATLAB接口?既然MATLAB拥有强大的数值计算功能,利用VC与MATLAB接口可以充分发挥它的数值计算功能,并且可以不依赖MATLAB软件运行,在VC下做出漂亮的界面,把复杂的数据处理交给MATLAB去做。
1.2 MATLAB函数编译为dll与VC之间的通讯方式1、使用自带的MATLAB Compiler2、使用MAT com工具3、在MATLAB下做com组件,在VC中调用com组件(出现了点问题,目前还没找到解决方法,这种方法在m文件较大、用matcom、调用math library或使用mcc方式无法实现的时候,推荐使用)2使用Matcom工具2.1 MATcom简介MATcom是MATHworks公司推出的第一个由MATLAB到C++的编译开发软件平台,其最新版本为4.5,集成调试编译环境为MIDEVA。
matlab实验心得体会matlab实验心得体会范文导语:MATLAB意为矩阵工厂(矩阵实验室)。
是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
以下是小编带来的matlab实验心得体会,希望对您有所帮助。
matlab实验心得体会篇1自从20xx年xx月xx日开始接触MATLAB,已经三年多了。
当初花了一个月时间,才进入MATLAB的殿堂。
那时立下了一个小小的心愿,三年里做到与高手平等交流。
现在目标基本上实现了,却找不到前进的方向。
最近在做一些反思,希望能够总结一些经验和教训,对自己,对新来者有一些帮助。
也将我的想法分享给有共同爱好的朋友,感谢这一路走来,有那么多人相伴。
一、孤独的旅程二、学习经验三、网络新大陆四、第一届MATLAB研讨会五、英雄谱六、第二届MATLAB研讨会七、忙乱八、 MATLAB俱乐部九、遗憾十、蜕变一、孤独的旅程刚开始学习MATLAB,基本上都是靠自学。
有一位前辈培训了一次,但是时间还是太短了。
那个时候看到MATLAB,只知道是一个很陌生的软件,还是全英文环境。
看到的第一本书,还是一本紫皮的讲Simulink的书。
后来上书店去买了一本铁道出版社的书《MATLAB6.1程序设计与实例》,真是一本好书啊,现在还是我首选的MATLAB书,不时拿在手上翻翻。
通读了这本书,才对MATLAB的概念有所了解。
因为要在界面上显示一个图像,其他人用的是一个pushbutton的CData显示图像,还能用鼠标按来按去。
我记得MATLAB的对象结构上讲了image,后来就想办法用Image显示出来这个图像。
花了三天左右搞定,这是我用MATLAB解决的第一个问题,对自己的鼓动很大。
后来又利用空闲时间,做了一个三角函数的显示模块,原希望帮助初中生学习三角函数,一直没有机会,就此埋没了我的处女作。
再之后就是买书,看书,不看help,因为英文不好。
记得有一次,要写一个界面,按钮画好了,回调函数也写了,可是程序总是运行不通。
matlab学习心得体会(精选17篇)matlab学习篇1matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。
他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。
matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。
本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。
通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。
matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。
matlab学习心得体会篇2学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。
听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。
目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。
matlab学起来挺顺手的,比C语言简单。
但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。
老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。
最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。
学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。
但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。
其中电场分布是无法用函数表达式表示。
我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。
matlab学习心得体会在学习Matlab期间,我总结了以下几点学习心得体会:1. 学习Matlab的基础知识是非常重要的。
Matlab是一种高级编程语言,功能强大且灵活,但它也有自己独特的语法和特性。
在学习Matlab之前,我先花了一些时间学习基本的语法和操作,包括变量的定义、矩阵的操作、流程控制语句等。
掌握这些基础知识对于后续的学习和实际应用非常重要。
2. 实践是学习Matlab的关键。
在学习Matlab的过程中,我发现最有效的方法是通过实践来巩固和运用所学的知识。
我尝试了许多不同的练习和项目,包括数值计算、数据分析和图像处理等。
通过这些实践,我更深入地理解了Matlab的各种功能和用法,并且锻炼了自己的编程和问题解决能力。
3. 利用Matlab的官方文档和在线资源。
Matlab有非常完善的官方文档和在线资源,包括用户手册、函数参考、示例代码等。
这些资源对于学习和解决问题非常有帮助。
在遇到问题或者需要学习某个功能时,我通常首先会查阅官方文档和在线资源,寻找相关的信息和示例代码。
这样不仅能够更快地解决问题,还可以学习到一些更高级和实用的用法。
4. 与其他人交流和分享。
在学习Matlab的过程中,我发现与其他人交流和分享经验是很有益的。
我经常参加一些Matlab的学习和交流活动,例如线上学习小组、论坛和社交媒体等。
通过与其他人讨论问题、分享经验和互相学习,我能够扩展自己的视野,了解到更多有关Matlab的应用和技巧。
总的来说,学习Matlab需要坚持不懈的努力和实践,并且灵活运用各种学习资源。
掌握Matlab的基础知识、通过实践巩固所学还有与他人交流和分享经验是提高Matlab 水平的有效方法。
通过不断地学习和实践,我逐渐提升了自己的Matlab编程能力,也发现了Matlab在科学计算和工程应用中的巨大价值。
将MATLAB函数编译成dll 供VC调用的方法1简介1.1 MATLAB简介MATLAB名字是由MATrix和LABoratory两词的前三个字母组合而成。
是美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。
经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。
目前,MATLAB己经成为应用最广泛的科学工程计算软件,它广泛的应用于自动控制、数学运算、信号分析、图象处理、财务分析等各行各业。
用MATLAB 编写的数学运算及图像处理等程序十分简单,在MATLAB里有大量的MATLAB 库函数,包括初等数学函数、线形代数函数、矩阵操作函数、数值计算函数、特殊数学函数、插值函数等等,还可以利用MATLAB的编译工具将m文件方便的转化为C\C++语言、可执行程序(exe)、动态连接库文件(dll)、COM组件等等,并可直接供C\C++语言调用。
为什么要用VC与MATLAB接口?既然MATLAB拥有强大的数值计算功能,利用VC与MATLAB接口可以充分发挥它的数值计算功能,并且可以不依赖MATLAB软件运行,在VC下做出漂亮的界面,把复杂的数据处理交给MATLAB去做。
1.2 MATLAB函数编译为dll与VC之间的通讯方式1、使用自带的MATLAB Compiler2、使用MATcom工具3、在MATLAB下做com组件,在VC中调用com组件(出现了点问题,目前还没找到解决方法,这种方法在m文件较大、用matcom、调用math library 或使用mcc方式无法实现的时候,推荐使用)2使用Matcom工具2.1 MATcom简介MATcom是MATHworks公司推出的第一个由MATLAB到C++的编译开发软件平台,其最新版本为4.5,集成调试编译环境为MIDEVA。
这个软件可厉害了,他生成的exe可执行文件可以在没有安装MATLAB的地方运行,只是需要几个dll文件而已。
如果用MATLAB的Deployment Tool 来生成的exe可执行文件,在没有安装MATLAB的机子上运行时需要安装MCR,而MCR现在有200M 多,所以很不方便。
通过MATcom连接MATLAB m文件有以下三种方法:(1)经过简单的设置,由MIDEVA将m源文件转换为C/C++,然后添加到VC工程中。
(2)由MIDEVA直接生成EXE文件,然后在VC中通过Shell调用。
这种方法简单方便,但运行时出现一个控制台窗口,而且由于VC和MATLAB之间不能交互,通用性差,仅适用于VC调用MATLAB实现图形显示的场合。
(3)通过Visual MATcom工具条,使用Add-in,这种方法提供了MATLAB 和VC直接集成的途径,且可快速集成m文件到VC工程中创建独立的C/C++应用程序、C MEX DLL,在调试过程中可以查看矩阵变量的值,可直接修改m 源文件而不是修改生成的C/C++文件。
2.2 MATcom的安装a) 安装之前,首先在matlab的安装目录下建立文件夹:\MATLAB7.0\bin\toolbox\matlab\general。
matcom4.5在安装时需要你输入口令,Matcom4.5的口令为FREE-4.5-1191。
b) 之后启动MATLAB,运行以下命令:cd c:\matcom45 % MATcom的安装路径diary mpathmatlabpathdiary offc)复制%MATcom45%\bin\usertype.dat文件到%VC%\Common\MSDev98\bin目录。
d) 运行Visual C++,并从菜单中选择Tools->Customize->Add-ins and Macro Files,选择Browse,改变文件类型为Add-in(.dll),选择%MATcom45%\bin\mvcide.dll文件,确定。
e) 在Visual C++的开发环境中可以看到一个Visual MATcom工具条,安装成功。
2.3 Matcom的工作原理Matcom编译.m文件是先将.m文件按照与Matcom的Cpp库的对应关系,翻译为CPP源代码,然后用对应版本的C编译器将该CPP文件编译为exe或dll文件,所以,在第一次运行时让指定C Complier的路径是必需的,否则将无法编译。
指定好的C Complier的信息写在Matcom/bin/matcom.ini文件中。
但也有不足之处:比如,对struct等类的支持有缺陷,部分绘图语句无法实现或得不到准确图象,尤其是三维图象。
2.4使用Matcom将.m文件翻译为C++文件a) 在MIDEVA下新建一个.m文件function Test1()x=-10:0.1:10;y=sin(x);plot(x,y);在matcom安装路径Debug文件夹下将会产生以下文件:从这里可以看出,MIDEVA己经将.m文件转化成c++代码,放在Test1.cpp 中。
b) 在VC中用MFC Wizard(exe)创建一个基于对话框名为Example的工程。
在面板上添加一个ID为IDC_BUTTON1按扭。
c) 将C:\matcom45\Debug目录下的Test1.cpp文件的内容拷贝到void CExamleDlg::OnButton1()下;d) 将C:\matcom45\lib\下的matlib.h和v4501v文件和C:\matcom45\debug 下的Test1.h文件拷贝到工程Example目录下,然后在VC中将库文件和头文件加入到工程中:工程->添加工程->Files,选择刚刚拷贝到Example目录下的matlib.h 、v4501v和Test1.h文件。
e)在ExampleDlg.cpp中加入如下代码:#include "matlib.h"#include "Test1.h"f)2.5使用Matcom工具编译为dll文件供VC调用在MIDEVA中新建一个.m文件,然后将其编译为.dll文件,新建工程,File->New Project…,设置组件属性,在"Component name"项中填写组件名称"component",这时候会自动生成类"component",在"Class name"项中填写类名称"huatu",为了便于区分,选中"Classes"中的"component",点击“remove”按钮,将类component移除,再点击"Add>>"添加新类huatu,结果如图5。
点击"OK",接下来出现一个对话框,选择"Yes".添加文件:选中左边工作区的"huatu",点击Project->Add File…,选择已经编辑好的函数文件huatu.m,如图所示。
需要注意的是m文件必须是m函数,否则会报错,如果是m脚本文件的话,只需要改为无输入输出参数的m函数即可。
生成 com组件:点击Build->COM Object…,在这里出现了点问题,目前还不知道解决办法。
3 使用MATLAB 自带的Matlab CompilerMATLAB Compiler 是MATLAB自带的一个编译器,它能将m文件转化成C、C++或p等各种类型的源代码,并根据需要生成可执行文件、lib文件(库文件)、dll文件或S函数文件等。
Matlab所使用的编译器包括了MATLAB 的C\C++数学库函数以及图形库。
必须保证编译器的正确配置,因为编译器使用了C\C++库函数,所以在使用前需要使用 mex -setup 和 mbuild -setup两个命令对编译器进行配置。
步骤如下:1. 设置Matlab的编译器,使用外部的VC或者gcc等编译器。
2. 编译m文件成dll3. 设置VC等的继承环境,设置C需要用到的静态库和动态库4. 编写C调用dll3.1设置Matlab编译器首先要安装Matlab 编译器,一般来说,在安装了Matlab后编译器就己经安装了,所在就只需要对Matlab编译器进行设置。
3.1.1 编译环境设置首先设置系统的环境变量,点击“我的电脑”属性-→系统特性--→高级-→环境变量-→添加系统变量Matlab值为Matlab的安装路径:G:\matlab7.0\bin\win32,重启电脑即可。
3.1.2 Matlab7.0 编译器设置(a) 为编译后产生的MEX文件进行预配置运行Matlab ,在Matlab 的命令窗口(Command Window) 键入“mex -setup ”命令后,按回车键,安装Matlab 编译器;(b) 为产生独立外部应用程序进行预配置对Matlab编译器mbuild应用程序进行设置,运行Matlab ,在Matlab 的命令窗口(Command Window) 键入“mbuild -setup ”命令后,按回车键,安装Matlab 编译器;编写Matlab文件huatu_test.m,一个很简单的程序,function [X1,Y1]=huatu_test(x1,x2)x=x1:0.1:x2;y=sin(x);X1=rand(1);Y1=rand(1);plot(x,y,X1,Y1,'*');end3.2 将Matlab函数转成dll函数在Matlab的Command Window /下输入命令:命令1 :mcc -W lib:dlltest -T link:lib huatu_test.m或命令 2 :mcc -W cpplib: dlltest -T link:lib huatu_test.m其中,mcc是matlab提供的编译命令(可以理解为gcc),对于这一点,matlab 的帮助说明如下:-W lib:string link:lib其中-W是控制编译之后的封装格式,cpplib,是指编译成C++的lib,cpplib 冒号后面是指编译的库的名字,-T表示目标,link:lib表示要连接到一个库文件的目标,目标的名字是后面的你写的m函数的名字。