matlab学习心得体会
我们从一些事情上得到感悟后,心得体会是很好的记录方式,这样可以记录我们的思想活动。怎样写好心得体会呢?以下是小编为大家整理的matlab学习心得体会,欢迎大家分享。
学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。
学习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的一些心得体会,限于学习的程度及能力有限,上文难免有认识肤浅之处,恳请批评指正。
这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。
1、如果你要是不是计算机转业的,只是为了方便自己的工作或学习,那么你没有必要把matlab教程全部学会,只需要学你需要的那部分即可,比如,绘图,矩阵运算,等等,根据你个人的需要而定,但是基本命令、数据类型、基本的程序结构(条件语句,循环语句,嵌套)、文件的io是必须看的,因为任何一个程序都需要这几个基本的块。
2、你最好找一个熟悉编程的人来辅助你的学习,这就包括很多编程的技巧问题,程序的结构设计问题,对于程序的运行效率非常有帮助。有的时候,你编出来的程序,能够运行,但是耗时太长,也就是说你的程序没有错,但是不适合实际。或者说,对于规模小的问题能够解决,但是规模大一点的问题就需要很长很长的时间,这就需要对程序的结构和算法问题进行改进(亲身体会,编完一个程序,小的例子可以运行出结果,但是大例子需要很长时间,所以必须要改进一下)。
最近在学习matlab,一直不入其法门。从网上看到了一些大虾的经验心得,感触颇深,转贴过来,希望给初学者有一定的指引。
一)写给学习matlab的新手们
本人接触matlab已经有5年多的时间了,一直想写点东西,但是之前不知道放在哪里才能发挥它的最大作用,直到几天前碰上了这个论坛(有点像诸葛亮遇见姜维,哈哈)。
废话不说,我想借贵论坛宝地,写一些经验给使用matlab的新手们,当然了,老大们也可以看看,不嫌弃我写得粗糙的话还可以指点一下,先谢过了~~~~
首先我想说的是,matlab跟其他语言不一样(我用的比较多的编程语言,除了matlab就应该是c或c++了,VB和Delphi也接触过,我想版面(matlab版)大部分人也差不多),如果你抱着“把其他语言的思想运用在matlab里面”的话,那么我想,即使程序运行不出错,也很难把握matlab的精髓,也就很难发挥matlab的作用了。所以,如果你是希望matlab作为VC的附属品,即你不想在matlab上面花太多功夫,只纯粹想用matlab来完成VC做不了或很难做成的任务的话,那么,这篇文章你也不需要再阅读下去了;如果你是希望掌握一门语言、一个工具,使它更有效为你服务的话,那么,希望本文对你有所帮助。
Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for循环(包括while循环)满天飞…………..这不仅是暴殄天物(没有发挥matlab所长),还浪费了你宝贵的时间。对此,版友MVH在他的“MATLAB小技巧”一文中也有所涉及,雷同的东西我也就不重复了,matlab的“帮助”里面也有相关的指示。我这里想说的一点是,初学者往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++的思想。举个例子吧,下面的代码是我的一个师弟写的,我想他接触matlab也有2、3年时间了(在此说明一下,接触2、3年并不是表示每天都会跟matlab打交道,我本人也不是,只是在一年某几个时间段里面连续使用),但是仍然会出现类似的问题:
J=0;
lt=size(imf1,2);
for(i=1:lt)
if(abs(imf1(i))>1)
J=1;
break
end
end
上面的代码实现了一个目的――检查信号imf1(一个向量)是否存在绝对值大于1的点,这显然是基于C++的思想写出来的。如果在matlab下面,其实用两个语句就足够了(当然,可以合并为一个): q=find(imf1>1);
J=~isempty(q);
这样的修改带来的.好处是很可观的。
又如:
forj=1:num
imf1(start1+j)=2*li1(j+1)-imf1(start1+j);
end
这是一个对称翻折的问题,它完全可以用以下这个语句简洁表示:
imf1(start1+1:start1+num)=2*li1(2:num+1)-imf1(start1+1:start1+num);
因此,如果是新手,可以先用循环(基于C++的思想)来编写代码,然后看看能否用matlab的语言(基于矩阵的思想)来改进。当然,这样做的前提是你对matlab提供的一些函数比较熟悉才行,这些函数在matlab的“帮助”那里搜索“FunctionsUsedinVectorizing”就可以找到一些,其他的也可以找相关的书籍(没找到?不可能,电子版总可以下载到的)
对提高matlab编程能力的方法,我想主要有以下三个:
1.查help
2.多上上论坛,搜索帖子、发帖子问人
3.阅读别人、特别是牛人的程序
当然了,正如所有的程序语言一样,“3分课本7分上机”,一定要动手才行,不能光看。多想、多思考、多尝试,才是正路。
最后,整理一下常用的快捷键(用【】表示)或命令:
1.在命令窗口(CommandWindow)中:
1)【上、下键】――切换到之前、之后的命令,可以重复按多次来达到你想要的命令
2)clc――清除命令窗口显示的语句,此命令并不清空当前工作区的变量,仅仅是把屏幕上显示出来的语句清除掉
3)clear――这个才是清空当前工作区的变量命令,常用语句clearall来完成
4)【Tab】键――(转自版友心灯)在[email]matlab@hit.edu.cn[/email]看到的:在command窗口,输入一个命令的前几个字符,然后按tab键,会弹出前面含这几个字符的所有命令,找到你要的命令,回车,就可以自动完成。目前讨论结果是:matlab6.5版本中,如果候选命令超过100个,则不显示。而在matlab7以后版本中,则没有这个限制,均可正常提示
其余的例如在Debug状态下的快捷键就不多说了,自己看菜单Debug吧
累了,有时间再写吧。希望大家多交流~~~~~~
Coming:(以下东西都是一年前做的了,不知道能否记起,呵呵)
1)关于神经网络的――调用matlab的nntool命令后的使用问题(我做的时候没有看过其他书籍或资料,是自己闭门造车的结果,如果写之前发现其他书籍有相关介绍的话就不写了)
2)关于外部接口的――matlab与C++Builder的接口,想详细介绍如何利用matcom4.5在C++Builder中调用matlab的代码以及matcom的一些技巧。由于我不是搞项目开发的(搞科研、搞课题的),所以对VC不熟悉,大学的时候学过一点,不过我想对于搞科研来说C++Builder就足够了,免去很多麻烦,Builder在界面设计和数据库连接上面(我只接触过这两方面)还是做得不错的。同样,如果发现其他书籍上有类似的东西就不写了
3)GUI方面也写写吧,只是一点点心得或者体会,呵呵,这个相对简单些,篇幅相对要少些。
文档为doc格式