学习matlab的一点心得体会.doc_第1页
学习matlab的一点心得体会.doc_第2页
学习matlab的一点心得体会.doc_第3页
学习matlab的一点心得体会.doc_第4页
学习matlab的一点心得体会.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习matlab的一点心得体会1.前言2.matlab的一些特点3.学习matlab心得体会4.matlab的一些资源1.前言我接触Matlab的时间比较长了,最开始是在大学里面的数学实验课上了解了一些,学了些基础的命令,后来参加过一次数学建模,又自学了点。而后由于所学的专业是生命科学和环境相关的东西,用到matlab的机会不多,主要是一些功能用matlab实现起来不是很方便,而且手边有现成的软件可以做到,例如图像分析,还有DNA序列分析都有现成软件等。本以为不会与其有太多交集。我下决心学习matlab是在经历几件事情之后。当时,在做硕士论文时需要对电泳图片做微生物种群的多样性分析和相似性分析,当时手头的软件只能将电泳图转化为各个泳道的灰度和位置方面的数据,而不能对数据进行分析,而能进行这样分析的软件(Bionumerics)比较贵,只为了这个用几次而买显然很不划算。无奈之下,我查了些文献,了解计算的原理后便用比较熟悉的matlab编程解决这个问题,其实这个程序比较简单-DGGE中条带Shannon多样性指数的计算 ,在现在看来,根本不值一提,但是在当时自我感觉还是不错的,相当有成就感了。后来在课程(数值分析,微分方程数值解)中matlab经常用到,另外在帮师姐做管理方面的数学模型时用的比较多,便自学了相关方面的知识,主要是看书,自己编程还有上网交流,这时在百度上回答了很多matlab相关的问题,并成为百度matlab技术论坛的副团长,在emuch中蒙前计算模拟区区长cenwanglai看重,聘为计算模拟版的版主。Matlab涉及的方面非常广,下面我就自己的理解谈下matlab一些特点和我学习matlab的一点体会,希望能对大家有点帮助,有什么不对的地方,敬请指正!2.matlab的一些特点AMatlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for循环(包括while循环)嵌套了十几层,这不仅是暴殄天物(没有发挥matlab所长),还浪费了你宝贵的时间,就只见左下角一直busy。B友好的界面,易于操作 ,虽然matlab一打开总看到命令行窗口,其实matlab有很多的GUI工具箱,可以很方便实现很多功能,对于一些不喜欢写代码的人来说,使用起来非常方便。举些例子曲线拟合工具箱cftool,曲面拟合工具箱sftool ,遗传算法工具箱gatool等等Cmatlab绘图功能,matlab可以非常方便的绘制二维,三维,四维,矢量图形。例如:plot: x轴和y轴均为线性刻度(Linear scale)loglog: x轴和y轴均为对数刻度(Logarithmic scale)semilogx: x轴为对数刻度,y轴为线性刻度semilogy: x轴为线性刻度,y轴为对数刻度bar 长条图errorbar 图形加上误差范围fplot 较精确的函数图形polar 极座标图hist 累计图rose 极座标累计图stairs 阶梯图stem 针状图fill 实心图feather 羽毛图compass 罗盘图quiver 向量场图下面给几个matlab绘出一些特殊图形看看matlab绘图的效果D丰富的库函数(而且比较好用),这个看自己专业相关工具箱,涉及太广无法一一介绍。3. 学习matlab心得体会我觉以下几点对于学好matlab很重要:兴趣、悟性、勤奋、坚持。兴趣,不知道哪位名人说过“兴趣是最好的老师。”我觉得非常有道理,我曾对于matlab制作动画很感兴趣,并收集了很多例子,在小木虫贴出来后很多人对于matlab制作动画都很感兴趣,计算模拟版活动-程序模拟动画展示 ,一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验。这样才能主动学习,并且学好到精通。悟性,通常人认为指顿悟,慧根,我觉得就是对一个问题不断的思索,将自己的体会和感受融合,获得属于自己的知识。有很多事情、问题,都是可以想明白的。只有不停的想,才能想明白,想透彻。就像我自己解决matlab编程进行DGGE电泳图谱多样性相似性分析,当时没有工具,而且问题必须解决,于是我不停的想,吃饭时,睡觉前,最终终于解决。勤奋,一勤天下无难事。从古到今,有多少名人不是有勤奋而得来成功的。现在的年轻人,一代比一代聪明。要不被别人淘汰,要超越别人,只有靠时间堆出来。每天多学一些,多积累一些。学习matlab也一样,想要学会,使用熟练,不花时间练习,写代码,亲自运行调试,是很难掌握好的。坚持,认准了的事情,就坚持做到底,直到有所收获。事实上,很多人实现不了自己的目标,很大程度上就是少了一种坚持、非要把事情干到底的精神,他们往往浅尝辄止,因此眼睁睁失去了可能到手的成功。光有兴趣,只有三分钟的热情是很难成事的。很多事情的成功取决于踏平坎坷地坚持的毅力。看准了的事情,如果没有百折不挠的坚持,绝难取得成功。看准的事情就不屈不挠地坚持干下去直至成功,才是智者的唯一选择。每一个人都明白所有梦想的实现都需要努力,然而,很多人只所以没有实现心中的梦想,就在于多了空想、犹豫,少了努力坚持。 至于具体方法:1多动手写程序、调试这里有些常见错误提示信息供大家参考1.Subscript indices must either be real positive integers orlogicals中文解释:下标索引必须是正整数类型或者逻辑类型出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。2.Undefined function or variable a中文解释:函数或变量 a 没有定义3.Input argument x is undefined中文解释:输入变量 x 没有定义4.Matrix dimensions must agreeInner matrix dimensions must agree中文解释:矩阵的维数必须一致出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符。matlab通过“.”来区分矩阵运算和元素运算5.Function definitions are not permitted at the prompt or inscripts中文解释:不能在命令窗口或者脚本文件中定义函数出错原因:一旦在命令窗口写 function c = myPlus(a,b),此错误就会出现,因为函数只能定义在 m 文件中6. 1) X must have one or two columns 2)Vectors must be the samelengths中文解释:1. X 必须是 1 或者 2 列2. 向量长度必须一致7.One or more output arguments not assigned during call to.中文解释:在调用.函数过程中,一个或多个输出变量没有被赋值8.? Error using = mpowerMatrix must be square中文解释:错误使用mpwoer函数,要求矩阵必须是方阵9.Explicit integral could not be found.中文解释:显式解没有找到10.Index exceeds matrix dimensions.Attempted to access b(3,2); index out of bounds becausesize(b)=2,2.中文解释:索引超出矩阵的范围11.In an assignment A(I) =B, the number of elements in B and I must be the same中文解释:在赋值语句 A(I) = B 中,B 和 I 的元素个数必须相同12.To RESHAPE the number of elements must not change中文解释:矩阵变换时,变换前和变换后的总元素不能改变2善于利用MATLAB的帮助一遇到什么问题,通常我的第一反应是:help,就先说说自己对help的一些常用方法吧。1)命令窗口直接敲“help”,你就可以得到本地机器上matlab的基本的帮助信息。2)对于某些不是很明确的命令,只知道大体所属范围,譬如说某个工具箱,直接在命令窗口中敲入Help toolboxname,一帮可以得到本工具箱有关的信息:版本号,函数名等。3)知道函数名,直接用help funname就可以得到相应的帮助信息。3善于向别人学习,多看牛人写的代码并消化三人行,必有我师,一个人很难什么都精通,取长补短是最快的进步方法。Matlab的File exchange和pudn上都用很多代码,多看看牛人写的代码,了解他们编程技巧和思想,并消化,对于提高自己的编程水平非常有利。4时间积累“冰冻三尺非一日之寒”,学习需要日积月累,多积累一些matlab的技巧,对于编程是很有利的,比如求序列中的极值,下面一些正是小代码体现大智慧的典范!利用数学里驻点和极值点定义来求。 CODE:Copy to clipboard -ilxy的方法- aa=randperm(20)aa =16 13 17 7 19 18 14 8 11 2 20 3 6 4 15 1 12 10 5 9 bb=intersect(find(diff(aa)0)+1,find(diff(aa)aa(1:N-2)+(aa(2:N-1)aa(3:N)=2)+1;bb = aa(index);-bainhome的方法- a=rand(1,100); find(diff(sign(diff(a)0)+1 - 以上代码都是求极大值,略微变换后可以得到极小值。出自:中华钢结构论坛 -eight版主给的方法- d=diff(x); n=length(d); d1=d(1:n-1); d2=d(2:n); indmin=find(d1.*d20 & d10)+1; indmax=find(d1.*d20)+1; - 虽然基本原理一样,不过方法都各有特色。都是前辈们智慧的结晶。4.matlab的一些资源1)mathworks的官方网站2)/MATLAB/index.html这里有很多好的工具箱或者小的辅助函数可以下载,不过是国外的,e文和网络对来说感觉都是很不爽的事情。3)/Matlab大观园,估计只要在网上搜索过matlab资料的就不会不知道它,园主是东北大学的薛定宇教授,一直从事MATLAB语言及其应用研究。4)/MATLAB/INDEX.HTM文宇工作室5)http:/sh.ne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论