matlab课程总结_matlab学习总结总结
matlab课程总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab学习总结总结”。
Matlab 课程总结
学习matlab已经有一年多的时间了,matlab跟其他语言不一样(我用的编程语言,除了matlab就应该是c或c++了,VB也接触过),如果你抱着“把其他语言的思想运用在matlab里面的想法”的话,那么我想,即使程序运行不出错,也很难把握matlab的精髓,也就很难发挥matlab的作用了。
Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for循环(包括while循环)满天飞„„„„..这不仅没有发挥matlab所长,还浪费宝贵时间。我们往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++的思想。因此,以先用循环(基于C++的思想)来编写代码,然后看看能否用matlab的语言(基于矩阵的思想)来改进。当然,这样做的前提是你对matlab提供的一些函数比较熟悉才行,这些函数在matlab的“帮助”那里搜索“FunctionsUsedinVector izing”就可以找到一些。
对MATLAB的认识和了解
语言简洁紧凑,使用方便灵活,库函数极其丰富。与之前学过的C语言相比较。它的语言简练明了,有时候只要一个字符就能表示出整句语句,不用一步步去读。这种语言简单而实用。每个函数建立一个同名的M文件,如上述函数的文件名为fun.m。这种文件简单、短小、高效,并且便于调试。比如说,函数的赋值。在C语言中,它需要一个个去赋值,x=?;y=?;当变量很多的时候,我们不能一次性的去赋值。并且我们需要注意赋值的类型。而在Matlab软件中,我们只需要知道它的初值,自变量的数值,以及它的范围,就可以用矩阵把整个函数赋值。这减去了我们的工作复杂性,也降低了我们时间花费。
运算符丰富,用Matlab软件设计程序,它更加方便快捷。MATLAB 的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在MATLAB环境下,数组的操作与数的操作一样简单。对比C语言,Matlab确实简单不少。我们在编写程序时简便了许多。例如,求1 1 2 3 5 8 13„这个算法。C语言得用许多的语句去循环算这个算法。而Matlab软件可以首先数据初始化,然后用while去循环,做出循环体,就可以你要多少数据,它会给你多少数据。还有在Matlab软件设计程序时,少了很多的定义,减少了复杂度,节省了计算机的暂时内存使用率。就和C语言一样,在语句结束时用“{ }”,Matlab软件中一句话结束时,也需要用end。MATLAB既具有结构化的控制语句(如for循环、while循环),又有面向对象编程的特性。
语法限制不严格,程序设计自由度大。程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。Matlab具有一个强大的工具箱,里面的东西,只要你想要的,你可以毫不犹豫的提取出来,不用想C语言编程中,你要的东西你得用函数调用的形式去借用。这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。MATLAB的图形功能强大。不管你二维图形,三维图形,还是现在流行的四维图形。只要你想要,能编写出来函数式。在短短几秒钟之内,它会呈现在你眼前。另外就是图形的直观性,你在绘编图形时,加上一点修饰,它会自动标注你想要图形的阴影部分。MATLAB 具有二维和三维绘图功能,使用方法十分简便。而且用户可以根据需要,坐标图上加标题。坐标轴标记。文本注释及栅格等,也可以指定图线形式(如实线、虚线等)和颜色。常用的快捷键(用【】表示)或命令: 1.在命令窗口(CommandWindow)中:
1)【上、下键】――切换到之前、之后的命令,可以重复按多次来达到你想要的命令
2)clc――清除命令窗口显示的语句,此命令并不清空当前工作区的变量,仅仅是把屏幕上显示出来的语句清除掉
3)clear――这个才是清空当前工作区的变量命令,常用语句clearall来完成 4)【Tab】键――(转自版友心灯)在[email]matlab@hit.edu.cn[/email]看到的:在command窗口,输入一个命令的前几个字符,然后按tab键,会弹出前面含这几个字符的所有命令,找到你要的命令,回车,就可以自动完成。目前讨论结果是:matlab6.5版本中,如果候选命令超过100个,则不显示。而在matlab7以后版本中,则没有这个限制,均可正常提示
5)【Ctrl+C】(或【Ctrl+Break】)――在matlab程序运行过程中,可能由于程序编写的失误,导致程序不停的运行,在命令窗口输入“Ctrl+C”可以将运行的程序停下来,而不需要将整个Matlab程序关掉。不过进行此操作的前提是能够激活切换到命令窗口才行。2.在编辑器(Editor)中:
1)【Tab】(或【Ctrl+]】)――增加缩进(对多行有效)2)【Ctrl+[】--减少缩进(对多行有效)
3)【Ctrl+I】--自动缩进(即自动排版,对多行有效)4)【Ctrl+R】――注释(对多行有效)5)【Ctrl+T】――去掉注释(对多行有效)
6)【Ctrl+B】――括号配对检查(对版本6.5有效,但版本7.0无效,不知道是取消了还是换了另外的快捷键)7)【F12】――设置或取消断点 8)【F5】――运行程序Coming: 1.help:最有效的命令
1)命令窗口直接敲“help”,你就可以得到本地机器上matlab的基本的帮助信息。2)对于某些不是很明确的命令,只知道大体所属范围,譬如说某个工具箱,直接在命令窗口中敲入
Help toolboxname,一帮可以得到本工具箱有关的信息:版本号,函数名等。3)知道函数名,直接用help funname就可以得到相应的帮助信息。2.see also:不可小瞧的关联
在用help命令的时候,可能因为我们开始估计的方向不一定完全正确,在列出的帮助信息中没有直接给出的我们要找的东西,但是我们一定不要忽略了在帮助的最后列出的see also。3.lookfor:matlab中的baidu 当我们很多什么头绪都没有的时候,我们可以求助于它,往往会收到意想不到的效果。
譬如:曾经在gui编程的时候,遇到过这样一个问题:想拖动鼠标时,要出现一个方框,就像你在桌面上拖动鼠标,会出现虚线框一样。4.get,set:GUIobject属性的帮手
在GUI编程中,我们可能有时候想改变某些object的属性,或者想让它安装自己的想法实现,但是我们又不记得这些object的属性,更别提怎么设置他们的值了。这时,可以用get(handles)得到此对象的所有的属性及其当前值。用set(handles)可以得到对象所有可以设置的属性及其可能的取值。找到我们需要的属性名字和可能的取值之后,就意义用get(handles,‘propertyname’)取得此属性的值,用set(handles,‘propertyname’,values)设置此对象此属性的值。
5.Edit:查看m源文件的助手
在应用matlab过程中,可能我们想看看它的m源文件,当然用editor定位打开也行,但是我经常采用的是直接在command窗口中用edit funname.m,就省去了定位的麻烦。
6.其他常用命令:which,what等
which:定位指定的函数和文件,最好带上参数-all,以便显示更加多的信息 what:获得指定目录的m文件,mex文件以及mat文件名列表 MATLAB学习经验
悟性。上小学最喜欢的一个字就是悟,以前以为悟就是一个人的慧根。其实不是这样的,所谓悟就是想。要保持大脑的活力,要不停的想。有很多事情,技术的、非技术的问题,都是可以想明白的。只有不停的想,才能想明白,想透彻。我经常就在想MATLAB的对象属性,所以很熟悉对象属性。
勤奋。我这个人也比较懒惰的,但是我对自己喜欢的事情还是有一种韧性。我对勤奋的理解是,每天多学一些,多积累一些。在别人谈小资的时候,想想一些现实的技术。看看国外倾泻而下的标准、技术、商品,如何突围?只有靠我们每个人的勤奋。每当想起我们那些在国外做了七八年的竞争对手,要在中国打败他们,就只有靠时间、压力和汗水的积累。喜欢上海的一个理由,就是这里的快节奏,可以不会让我那么懒惰。有一些事情我想是可以值得骄傲一下的:有半年时间,平均每天学习MATLAB到半夜两点以后;有两个除夕夜,都是在编写程序。
坚持。做潜力开发的培训,往往要培养一个人永不放弃的斗志和信念。搞MATLAB也是这样,涉及的领域太多,每个领域里面都缺乏足够的专家分布在你周围。那么我们很难有机会接触到真正的高手,对我们的技术细节一一指点。在遇到实际问题时,就只能靠自己去摸索。常常是再坚持一两个小时,就能够解决你的问题。最大的成就感,就在付出了极大的心血和耐心,才取得一个艰难的小胜利。(真的做完一件事情,也许那感觉就是一个字:累)印象很深刻的一件事情,有一次SCIE与我聊起一个混合编程的问题,喋喋不休的讲完了第七种方案(因为好几个我没有听懂),依然不能解决问题,又想到了第八种方案。如果没有坚持,一般人也就能够想到第三步、第四步,如何能够达到圣人的境界?
付出。这也许是一个过时的话题,但是我坚信,付出依然能够给我们带来可观的回报。付出,不是今天老板给了你薪水,你可以继续为他工作一个月。我所理解的付出,是每天为公司、国家多工作两个小时。有一些规则是显性的,有一些规则不是那么容易发现的,是潜规则。我不是倡导无私,我只是希望通过自身的努力,提高公司的竞争力,提高民族的竞争力。在这个过程中,也相应的提高了作为个体的技术工程师的竞争力。现代的竞争是激烈而残酷的,只有熟悉地缘政治的人,才能有深刻的理解。没有朋友感兴趣,就培养这个群体。土壤厚重了,我们这些生物才能生长得更茂盛一些!
也许这就是一种正常的生存状态吧,不知道是否有更好的办法?如果你要做很多事情,就必须协调好。而我不太擅长此事,所以在很多事情之间穿梭。常常是同时做两件事情,计划着第三件事,夜里想着第四件事。时间长了,反倒习惯了一种忙乱的状态,可以做很多事情,做好一件马上就是下一件。只有等到这些都告一段落,就可以好好的放松一下了。
多动手写程序、调试。如果懒得写程序,调试程序,永远无法提高。我个人认为调试程序更重要。有些人可能在一个程序调试几下出不了结果时,就可能喜欢去问别人,我不太赞同这一做法。其实,凡事往往经过痛苦折磨后,才会让你印象深刻,收益更大。我建议在你觉得用尽你努力后,仍然无法有结果时,才去请教别人。我当初一个程序调试过一两个星期都有过。在这论坛上,你可以发现不少好的问题,对这些问题,不要光看别人如果解决,也不要光想怎么解决,自己坐下来,动手自己解决一下,那你就会把不是你的知识变成自己的知识。善于利用MATLAB的帮助。可以这么说,任何问题都可以在MATLAB的帮助里找到解决的办法。问题不论大小,都是由更小的问题组成,把大问题化为小问题,小函数,然后再到MATLAB帮助里去找这种小问题,小函数的用法。说实话,MATLAB里的函数太多,我也经常忘记一些用法,这时HELP就帮忙了。
善于向别人学习。在你解决一个问题后,你可能会发现别人有更简便的方法解决,更强的函数,就是你向别人学习的时候。
遗憾如果我能够与Mathworks的人直接沟通,也许能够了解更多的技术细节。我们对MATLAB的很多困惑,也许就是他们曾经面对的问题。比如Compiler的发展方向,我想当初这些技术工程师也做了很多争论。如果他们能够得到一些其他的反馈信息,也许在编译器方面做得更好。
时间总是一种稀缺资源,与同行的交流还不够充分。比如对某些领域的了解,依然很片面。看到很多朋友,对一些相关行业和领域,都能侃侃而谈,实在是一种羡慕。数学基础实在不好,很多算法问题总是想不明白。数学天才们的思维训练,看来是没有机会接受了。
随着对技术的理解加深,有一些看法在逐步转变。以前以为一个好东西,总能够保持其优势。然而现实生活中,技术发展太块了,仅有这些还不够。不选择更新,只有被淘汰,无论是技术,还是做技术的人。
MATLAB真是一个好工具,也只能是一个好工具。它可以作为一个平台,承载知识和算法,那么核心的竞争力将是它实现的技术和产品。现在的公司,主营业务是通信软件。以后的职业规划,将更多的与通信沾边了。又是一个陌生的领域,又是一个必须要全力以赴的专业。
总的来说,学习任何一门语言,态度决定一切。