第一篇: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 Compiler
2、使用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.0bintoolboxmatlabgeneral。matcom4.5在安装时需要你输入口令,Matcom4.5的口令为FREE-4.5-1193046-80295111。
b)之后启动MATLAB,运行以下命令: cd c:matcom45 % MATcom的安装路径 diary mpath matlabpath diary off c)复
制%MATcom45%binusertype.dat文件到%VC%CommonMSDev98bin目录。
d)运行Visual C++,并从菜单中选择Tools->Customize->Add-ins and Macro Files,选择Browse,改变文件类型为
Add-in(.dll),选择%MATcom45%binmvcide.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:matcom45Debug目录下的Test1.cpp文件的内容拷贝到
void CExamleDlg::OnButton1()下;
d)将C:matcom45lib下的matlib.h 和v4501v文件和C:matcom45debug下的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„,在这里出现了点问题,目前还不知道解决办法。使用MATLAB 自带的Matlab Compiler MATLAB Compiler 是MATLAB自带的一个编译器,它能将m文件转化成 C、C++或p等各种类型的源代码,并根据需要生成可执行文件、lib文件(库文件)、dll文件或S函数文件等。Matlab所使用的编译器包括了MATLAB 的CC++数学库函数以及图形库。
必须保证编译器的正确配置,因为编译器使用了CC++库函数,所以在使用前需要使用 mex-setup 和 mbuild-setup两个命令对编译器进行配置。步骤如下:
1.设置Matlab的编译器,使用外部的VC或者gcc等编译器。2.编译m文件成dll 3.设置VC等的继承环境,设置C需要用到的静态库和动态库 4.编写C调用dll 3.1设置Matlab编译器
首先要安装Matlab 编译器,一般来说,在安装了Matlab后编译器就己经安装了,所在就只需要对Matlab编译器进行设置。3.1.1 编译环境设置
首先设置系统的环境变量,点击“我的电脑”属性-系统特性--高级-环境变量-添加系统变量Matlab值为Matlab的安装路径:G:matlab7.0binwin32,重启电脑即可。
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,'*');end
3.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函数的名字。生成的文件将会保存在当前目录下,默认的当前目录为:MATLAB根目录work,找到dlltest.h、dlltest.lib和dlltest.dll文件,这三个文件是我们需要的。
3.3 M函数文件编译成DLL文件问题解决
1、Warning: No matching builtin function available for C:MATLAB6.5toolboxsimulinksimulinkset_param.bi 解决方法:
1)将 MATLAB6.5toolboxcompilerdeploymatlabrc.m 中的 81行 set_param(0,'PaperType',defaultpaper);82行 set_param(0,'PaperUnits',defaultunits);注释掉,或者干脆删掉。
2)在 Matlab6.5 的命令窗口运行 rehash toolboxcache 3)重新编译文件后即可运行。
2、mbuild –setup的错误
Error: Could not find the compiler “cl”on the DOS path,use mbuild to configure your environment properly.由于VC安装有误而导致此错误,在安装时必须选择默认路径,否则matlab检测不到VC编译器的物理位置 3.4 dll 文件载入
在VC中新建一个名为ceshi基于对话框的工程,在工程中添加一个名为“测试”的button按钮。将dlltest.h、dlltest.lib和dlltest.dll文件拷贝到当前工程目录下,并通过Project->Add To Project->Files 选择拷贝到当前目录下的三个文件,将文件引入工程。
在ceshiDlg.cpp文件中添加头文件dlltest.h #include “dlltest.h” 打开dlltest.h文件,里面有有关函数的定义,找到其中三个函数:
extern mxArray * mlfHuatu_test(void);extern void dlltestInitialize(void);extern void dlltestTerminate(void);
从函数意思不难知道它们的作用,dlltestInitialize用来初始化dll库,dlltestTerminate用来结束调用dll, mlfHuatu_test为主程序执行函数。将三个函数拷贝到button响应代码中,进行修改:
void CCeshiDlg::OnButton1(){ dlltestInitialize();mlfHuatu_test();dlltestTerminate();} 在MATLAB下做com组件,在VC中调用com组件
COM(Component Object Model)组件对象模型,在Matcom里做 COM组件,步骤如下:
1、在matlab command window 输入如下命令:
>> comtool 出现com编辑界面,两种方法比较
其实两种方法大致思路都一样,但是各自都有局限:
用Matlab 自带的Compiler 将.m文件转换成c++代码功能有很多限制:
1、不能转换脚本m文件,只能转换m函数;
2、不能使用matlab对象;
3、不能用input或者eval操作matlab空间变量;
4、不能动态地命名变量,然后用load或者save命令来操作;
5、不能处理具有嵌套调用其他m文件的m文件;
6、不能使用MATLAB内联函数;
另外用Matlab自带的编译器有版本限制,MATLAB6.5的编译器为3.0版本,MATLAB7.0的编译器为4.0版本,4.0版本的编译器对原编译器进行了很多改进,3.0很多方法都不再使用,如果在7.0版本上使用会出现错误。
问题:在VC6.0下怎样调用Matlab7.0下编译生成的dll文件? 问题:在Matcom里生成了dll文件,在VC中该怎样调用它? 问题:在Matlab7.0下生不成dll组件?
第二篇:Matlab心得体会
Matlab心得体会
10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。曾经旁听过学校数学建模的课程,当时老师用的是lingo。对那个只需要U盘携带就可以安装的小东西记忆深刻。等到学习matlab时觉得这才是真正的王道啊。
它不仅有强大的运算功能,还有强大的绘图功能,虽然学习了有一个学习,但是我对他的了解额仅仅是一点点,或许连入门都谈不上。因为我学习时了解到一个现实。就是matlab的学习依赖有比较好的数学功底,其中我看最经常运用到的就是矩阵。我从网上了解到matlab是一门高等数学和计算机技术结合的东西,学习它必须具有相应的数学和计算机知识。然而很可惜,我的书写不是很好。每次讲到这个部分的时候就觉得听说理解无能了。特别是我今年还是大二,有一次老师讲课时用到协方差。无可避免的我笑了,因为协方差是我们下节课概率论数理统计老师要讲的内容。大一的时候还不觉得,但是大二,越是学习以后的内容越是感觉到时间不够用。或许时间是够用的,但是无法放弃那些占用自己时间表的无用项目。虽然这学期的学习的时间短暂,就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路人,最终的学习还是要靠自己。而且在摸索的过程中,我们能够发现和体会学习的快乐。痛并快乐着是种常态了吧。
自我感觉学习matlab与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。另外就是图形的直观性,这是由阴影的制作的。而且可以根据需要,坐标图上加标题,坐标轴标记,文本注释级栅格等,也可以指定图线形式,比如是虚线。颜色也可以自己来定。可以在同一张图上画,也可以单个显示。
今年选择金融matlab一方面出于希望能够提前修完大三时期的课程,能够空出更多的时间去考研或者为就业做准备。另一个考虑就是希望明年能够参加数学建模大赛,今年种种纠结放弃了,觉得万分可惜。明年也就是大三下学期的话我就会再来一次,而且还会更加坚定些。那么学习matlab的话对明年的计划也是有帮助的。在学习的过程中,因为以前学过access中的select语言,觉得就编写这方面是有共性的,但是matlab的编程语言似乎更多更复杂一点,这是由于涉及的数学模型,数学公式更多的原因。老师在讲解的过程中是通过一个个具体的金融例子来讲解的,而不是就matlab这个具体的软件工具进行讲解。这个给我带来相当大的打击,因为我发现我不仅仅是工具不能够熟练,涉及到的专业知识也是一知半解。这更加坚定了我要好好学习专业知识的决心,大学四年有几个人是希望荒度过去的呢?可是今年的这门课真的是让我感到没学到什么,估计也是因为我抱着看一看的随意态度来的吧,也没有那种遇到不懂的就一定要弄懂它的决心和毅力。说什么都是借口了,无法掩饰我没有学好它的事实。事实上,我觉得今年这门课的重点并不是让我们掌握这种软件的具体用法,而是主要向我们展示如何用它去解决一些金融问题,数学问题。这点让我很郁闷,因为我不懂得原理,听起来这门课倍感吃力啊。可是嘛,年轻没有什么不可以,又有谁可以断言我接下来的生活中不能好好学习这个东西为自己的工作,学习,生活,研究兴趣带来方便呢。
从大学开学的见闻到现在学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,除了会画几个简单的图形,其他的还是有待提高。从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如不会外语,想学好是非常难的。其实想要学习好一们语言,不能只靠老师,关键是自己。每个人内心深处都是有抵触意识的,不可能把老师的所有都学到。学习这门语言,不光是学习一种语言,更重要的事学习一种方法,一种学习软件的方法,还有学习的态度。
总结一下,学习任何一门语言:态度决定一切。不论是英语还是计算机语言。其实以前上高中的时候接触过这种编程语言,当时记得最头疼的就是循环语句,但是在matlab中这种东西用的就比较少了。语言语句都是很简洁利落的,都是一枪瞄死靶心的那种,很直接,这也让我减轻不少心理负担。
其实学习这种事,与其说学习什么具体的东西,更不如说是学习一种态度,从种种波折中认识到自己的局限性,不足。心情会沮丧,也会豁然开朗。光想不练假把式,不论想的再多,不实际运用还是没有用的。书山有路勤为径,学海无涯苦作舟。华山再高,顶有过路。这就是我今年学习金融matlab的心得体会。
第三篇:Matlab心得体会
Matlab心得体会
10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。曾经旁听过学校数学建模的课程,当时老师用的是lingo。对那个只需要U盘携带就可以安装的小东西记忆深刻。等到学习matlab时觉得这才是真正的王道啊。
它不仅有强大的运算功能,还有强大的绘图功能,虽然学习了有一个学习,但是我对他的了解额仅仅是一点点,或许连入门都谈不上。因为我学习时了解到一个现实。就是matlab的学习依赖有比较好的数学功底,其中我看最经常运用到的就是矩阵。我从网上了解到matlab是一门高等数学和计算机技术结合的东西,学习它必须具有相应的数学和计算机知识。然而很可惜,我的书写不是很好。每次讲到这个部分的时候就觉得听说理解无能了。特别是我今年还是大二,有一次老师讲课时用到协方差。无可避免的我笑了,因为协方差是我们下节课概率论数理统计老师要讲的内容。大一的时候还不觉得,但是大二,越是学习以后的内容越是感觉到时间不够用。或许时间是够用的,但是无法放弃那些占用自己时间表的无用项目。虽然这学期的学习的时间短暂,就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路人,最终的学习还是要靠自己。而且在摸索的过程中,我们能够发现和体会学习的快乐。痛并快乐着是种常态了吧。
自我感觉学习matlab与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。另外就是图形的直观性,这是由阴影的制作的。而且可以根据需要,坐标图上加标题,坐标轴标记,文本注释级栅格等,也可以指定图线形式,比如是虚线。颜色也可以自己来定。可以在同一张图上画,也可以单个显示。
今年选择金融matlab一方面出于希望能够提前修完大三时期的课程,能够空出更多的时间去考研或者为就业做准备。另一个考虑就是希望明年能够参加数学建模大赛,今年种种纠结放弃了,觉得万分可惜。明年也就是大三下学期的话我就会再来一次,而且还会更加坚定些。那么学习matlab的话对明年的计划也是有帮助的。在学习的过程中,因为以前学过access中的select语言,觉得就编写这方面是有共性的,但是matlab的编程语言似乎更多更复杂一点,这是由于涉及的数学模型,数学公式更多的原因。老师在讲解的过程中是通过一个个具体的金融例子来讲解的,而不是就matlab这个具体的软件工具进行讲解。这个给我带来相当大的打击,因为我发现我不仅仅是工具不能够熟练,涉及到的专业知识也是一知半解。这更加坚定了我要好好学习专业知识的决心,大学四年有几个人是希望荒度过去的呢?可是今年的这门课真的是让我感到没学到什么,估计也是因为我抱着看一看的随意态度来的吧,也没有那种遇到不懂的就一定要弄懂它的决心和毅力。说什么都是借口了,无法掩饰我没有学好它的事实。事实上,我觉得今年这门课的重点并不是让我们掌握这种软件的具体用法,而是主要向我们展示如何用它去解决一些金融问题,数学问题。这点让我很郁闷,因为我不懂得原理,听起来这门课倍感吃力啊。可是嘛,年轻没有什么不可以,又有谁可以断言我接下来的生活中不能好好学习这个东西为自己的工作,学习,生活,研究兴趣带来方便呢。
从大学开学的见闻到现在学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,除了会画几个简单的图形,其他的还是有待提高。从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如不会外语,想学好是非常难的。其实想要学习好一们语言,不能只靠老师,关键是自己。每个人内心深处都是有抵触意识的,不可能把老师的所有都学到。学习这门语言,不光是学习一种语言,更重要的事学习一种方法,一种学习软件的方法,还有学习的态度。
总结一下,学习任何一门语言:态度决定一切。不论是英语还是计算机语言。其实以前上高中的时候接触过这种编程语言,当时记得最头疼的就是循环语句,但是在matlab中这种东西用的就比较少了。语言语句都是很简洁利落的,都是一枪瞄死靶心的那种,很直接,这也让我减轻不少心理负担。
其实学习这种事,与其说学习什么具体的东西,更不如说是学习一种态度,从种种波折中认识到自己的局限性,不足。心情会沮丧,也会豁然开朗。光想不练假把式,不论想的再多,不实际运用还是没有用的。书山有路勤为径,学海无涯苦作舟。华山再高,顶有过路。这就是我今年学习金融matlab的心得体会。
第四篇:matlab心得体会
MATLAB学习心得体会
Matlab,提起它,不管我们上课是否认真听讲了,我们都应该对它不再陌生,我们不可否认它的强大之处,正如一节课时老师给我们说的“Matlab可以做很多事情”。通过近一段的学习,使我更加确信,它是一款集数据分析、矩阵运算、信号处理和图形显示于一体,可方便地应用于数学计算、算法开发、数据采集、系统建模和仿真、数据分析和可视化、科学和工程绘图、应用软件开发等方面的强悍软件,是研究人员、工程人员研究工作中 不可多得的工具。
正因为其强大之处,以及可视性及可交互性使我对它的学习产生了浓厚的兴趣。开学至今,短短十次课,我们学习了Matlab矩阵及其运算、Matlab程序设计、M文件操作、M文件调试、M文件高级编程以及Matlab绘图等„„不敢保证每节课都认真听讲,但都尽力去听,一段时间下来,对Matlab还是有了一定的框架性认识 及编程能力。但对于Matlab这样的软件来说,套用曾经一个老师
说的话“我给你们讲的都是皮毛,你们学到的更是皮毛中的皮毛”,虽然有点搞笑,但却是不争的事实,学习软件类的东西,最好的办法就是激发兴趣和多加练习。我想当老师在课堂上给我们演示如何用Matlab编程解决一些实际问题以及编程出现一些绚丽丰富的图形时,我们无不惊叹其美丽,我想凭这一点激发起同学们的兴趣是没有问题的,但问题是同学们为什么还说它难学呢?关键还是在于同学们下课后缺乏锻炼,加之每次课间隔时间较长,仅凭上课时记得的东西,是很难连贯及熟练运用的。
关于如何才能够更好地学习好Matlab,通过下面同学们之间的交流,综合同学及个人意见,提出以下几点建议(纯属个人观点,如有不妥,还请见谅):
1、针对学习资料:
希望邮箱中上传PPT文件标清章节号,一来方便有兴趣及精力的同学提前学习,二来方便同学下来后及时按照章节复习。(注:尤其是对初学者由易到难的过程中显得尤为重要)
2、针对上课学习
对于软件类的学习存在这样一个问题,那就是同学们上课挺感兴趣得听讲,听到入迷时恨不得立刻就找一台电脑试一试,但下课后可能去忙其他事情,不一会儿,这一份热情就消退了,也不会再去练习。针对此,考虑到目前大多数同学都有电脑的情况下,我们是否可以让同学们上课时带电脑到课堂上,一方面老师在讲台上演示,另一方面同学们在下面即时练习,这样也许会收到更好地教学效果。
3、针对课下学习
本学期Matlab学习,老师给的课下作业很少,也许老师考虑同学们比较忙,以及可能交上来的作业效果质量达不到预期效果。但我认为适量的课下作业还是非常有必要的,尤其是对于目前大学生普遍自制力较差的情况,这点显得更加有意义。针对如何布置课下作业以及布置什么作业,根据自身学习经验认为这样比较好:课下作业可以布置那些上课老师演示过的程序或PPT中程序略加改动,让同学们下课后及时完成上交。这不仅使同学们及时复习课上学习内容,也不至于使那些学习效果不佳的同学认为作业太难而直接放弃做去copy别人的。
以上即为近期学习Matlab的一些心得体会,限于学习的程度及能力有限,上文难免有认识肤浅之处,恳请批评指正。
第五篇:matlab心得体会
心得体会
虽然说本次matlab实训只有短短的一个礼拜,但在老师的耐心教导以及自身的努力下,还是获益匪浅。本次matlab实训是以信号与系统知识为实例来编写程序的,由于信号与系统正是本学期的课程,所以在理论知识上也比较容易理解,在加上老师耐心讲解,使我们的信号与系统知识也得到了巩固,可谓是一举两得。
在大一学年时,虽然已学过一学期的matlab知识,但是由于时间隔得有点久了,所以很多知识也有所遗忘了,通过本次实训,我们又重新学习巩固了所学知识,在很多matlab的应用上也有了新的体验。比如如何运用符号运算、向量表示法和计算卷积、系统的各种响应等。
Matlab这门课也算是门技术活,要想学好这门课就必须多练习,正所谓熟能生巧,练习多了就熟练了,也就能掌握好并且更好的运用这门课了,我们以前所学的知识之所以能遗忘得这么快,完全是因为我们掌握得不牢固。Matlab是一门很实用的课程,不管是信号与系统还是将来要学的数字信号处理等多门课都可以用matlab来实现,所以掌握好matlab为我们以后的学习和工作打下基础。
通过matlab的实训,同时也是对我们细心和耐心的锻炼。Matlab的编程需要很细心,一个标点符号的错误或者字符的大小写都将导致程序报错,所以这就有利于培养我们的细心。Matlab编程需要长时间的坐在电脑前工作,这就有利于培养我们的耐心,一旦坐在电脑前开始工作,常常会有一种时间过得特别的快的感觉。总之,本次matlab专题训练让我收获很多。