收藏 分享(赏)

MATLAB使用技巧.docx

上传人:w89153 文档编号:7761044 上传时间:2019-05-25 格式:DOCX 页数:7 大小:86.95KB
下载 相关 举报
MATLAB使用技巧.docx_第1页
第1页 / 共7页
MATLAB使用技巧.docx_第2页
第2页 / 共7页
MATLAB使用技巧.docx_第3页
第3页 / 共7页
MATLAB使用技巧.docx_第4页
第4页 / 共7页
MATLAB使用技巧.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、1.前言2.matlab 的一些特点3.学习 matlab 心得体会4.matlab 的一些资源1.前言我接触 Matlab 的时间比较长了,最开始是在大学里面的数学实验课上了解了一些,学了些基础的命令,后来参加过一次数学建模,又自学了点。而后由于所学的专业是生命科学和环境相关的东西,用到 matlab 的机会不多,主要是一些功能用 matlab 实现起来不是很方便,而且手边有现成的软件可以做到,例如图像分析,还有 DNA 序列分析都有现成软件等。本以为不会与其有太多交集。我下决心学习 matlab 是在经历几件事情之后。当时,在做硕士论文时需要对电泳图片做微生物种群的多样性分析和相似性分析,

2、当时手头的软件只能将电泳图转化为各个泳道的灰度和位置方面的数据,而不能对数据进行分析,而能进行这样分析的软件(Bionumerics)比较贵,只为了这个用几次而买显然很不划算。无奈之下,我查了些文献,了解计算的原理后便用比较熟悉的 matlab 编程解决这个问题,其实这个程序比较简单- DGGE 中条带 Shannon 多样性指数的计算 ,在现在看来,根本不值一提,但是在当时自我感觉还是不错的,相当有成就感了。后来在课程(数值分析,微分方程数值解)中 matlab 经常用到,另外在帮师姐做管理方面的数学模型时用的比较多,便自学了相关方面的知识,主要是看书,自己编程还有上网交流,这时在百度上回答

3、了很多 matlab相关的问题,并成为百度 matlab 技术论坛的副团长,在 emuch 中蒙前计算模拟区区长cenwanglai 看重,聘为计算模拟版的版主。Matlab 涉及的方面非常广,下面我就自己的理解谈下 matlab 一些特点和我学习 matlab 的一点体会,希望能对大家有点帮助,有什么不对的地方,敬请指正!2.matlab 的一些特点AMatlab 是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for 循环(包括 while 循环)嵌套了十几层,这不仅是暴殄天物(没有发挥 m

4、atlab 所长),还浪费了你宝贵的时间,就只见左下角一直 busy。B友好的界面,易于操作 ,虽然 matlab 一打开总看到命令行窗口,其实 matlab 有很多的 GUI 工具箱,可以很方便实现很多功能,对于一些不喜欢写代码的人来说,使用起来非常方便。举些例子曲线拟合工具箱 cftool,曲面拟合工具箱 sftool ,遗传算法工具箱gatool等等Cmatlab 绘图功能,matlab 可以非常方便的绘制二维,三维,四维,矢量图形。例如:plot: x 轴和 y 轴均为线性刻度(Linear scale)loglog: x 轴和 y 轴均为对数刻度( Logarithmic scale

5、)semilogx: x 轴为对数刻度,y 轴为线性刻度semilogy: x 轴为线性刻度,y 轴为对数刻度bar 长条图errorbar 图形加上误差范围fplot 较精确的函数图形polar 极座标图hist 累计图rose 极座标累计图stairs 阶梯图stem 针状图fill 实心图feather 羽毛图compass 罗盘图quiver 向量场图下面给几个 matlab 绘出一些特殊图形看看 matlab 绘图的效果D丰富的库函数(而且比较好用),这个看自己专业相关工具箱,涉及太广无法一一介绍。3. 学习 matlab 心得体会我觉以下几点对于学好 matlab 很重要:兴趣、悟

6、性、勤奋、坚持。兴趣,不知道哪位名人说过“兴趣是最好的老师。” 我觉得非常有道理,我曾对于 matlab 制作动画很感兴趣,并收集了很多例子,在小木虫贴出来后很多人对于 matlab 制作动画都很感兴趣, 计算模拟版活动-程序模拟动画展示 ,一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验。这样才能主动学习,并且学好到精通。悟性,通常人认为指顿悟,慧根,我觉得就是对一个问题不断的思索,将自己的体会和感受融合,获得属于自己的知识。有很多事情、问题,都是可以想明白的。只有不停的想,才能想明白,想透彻。就像我自己解决 matlab 编程进行

7、 DGGE 电泳图谱多样性相似性分析,当时没有工具,而且问题必须解决,于是我不停的想,吃饭时,睡觉前,最终终于解决。勤奋,一勤天下无难事。从古到今,有多少名人不是有勤奋而得来成功的。现在的年轻人,一代比一代聪明。要不被别人淘汰,要超越别人,只有靠时间堆出来。每天多学一些,多积累一些。学习 matlab 也一样,想要学会,使用熟练,不花时间练习,写代码,亲自运行调试,是很难掌握好的。坚持,认准了的事情,就坚持做到底,直到有所收获。事实上,很多人实现不了自己的目标,很大程度上就是少了一种坚持、非要把事情干到底的精神,他们往往浅尝辄止,因此眼睁睁失去了可能到手的成功。光有兴趣,只有三分钟的热情是很难

8、成事的。很多事情的成功取决于踏平坎坷地坚持的毅力。看准了的事情,如果没有百折不挠的坚持,绝难取得成功。看准的事情就不屈不挠地坚持干下去直至成功,才是智者的唯一选择。每一个人都明白所有梦想的实现都需要努力,然而,很多人只所以没有实现心中的梦想,就在于多了空想、犹豫,少了努力坚持。 至于具体方法:1多动手写程序、调试这里有些常见错误提示信息供大家参考1.Subscript indices must either be real positive integers orlogicals中文解释:下标索引必须是正整数类型或者逻辑类型出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下

9、标索引要么从 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中文解释:矩阵的维数必须一致出错原因:这是由于运算符(= + - / * 等)两

10、边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符。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 columns2)Vectors must be the samelengths中文解释:1. X 必须是 1 或者 2 列2

11、. 向量长度必须一致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 b

12、ounds 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)命令窗口

13、直接敲“help”,你就可以得到本地机器上 matlab 的基本的帮助信息。2)对于某些不是很明确的命令,只知道大体所属范围,譬如说某个工具箱,直接在命令窗口中敲入Help toolboxname,一帮可以得到本工具箱有关的信息:版本号,函数名等。3)知道函数名,直接用 help funname 就可以得到相应的帮助信息。3善于向别人学习,多看牛人写的代码并消化三人行,必有我师,一个人很难什么都精通,取长补短是最快的进步方法。Matlab 的 File exchange 和 pudn 上都用很多代码,多看看牛人写的代码,了解他们编程技巧和思想,并消化,对于提高自己的编程水平非常有利。4时间积累

14、“冰冻三尺非一日之寒” ,学习需要日积月累,多积累一些 matlab 的技巧,对于编程是很有利的,比如求序列中的极值,下面一些正是小代码体现大智慧的典范!利用数学里驻点和极值点定义来求。CODE:-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,1

15、00); 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)+1; - 虽然基本原理一样,不过方法都各有特色。都是前辈们智慧的结晶。4.matlab 的一些资源1)http:/mathworks 的官方网站2)http:/ 这里有很多好的工具箱或者小的辅助函数可以下载,不过是国外的,e 文和网络对来说感觉都是很不爽的事情。3)http:/ 大观园,估计只要在网上搜索过 matlab资料的就不会不知道它,园主是东北大学的薛定宇教授,一直从事 MATLAB 语言及其应用研究。4)http:/ 文宇工作室5)http:/ 语言与应用,薛定宇的一个论坛6)http:/ 中国学术交流园地,7)http:/ matlab 技术论坛8)http:/ matlb 中文论坛9)http:/ 可以下载一些 matlab 代码

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报