24小时热门版块排行榜    

查看: 29615  |  回复: 151
本帖产生 2 个 计算强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

[资源] 学习matlab的一点心得体会已有36人参与


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的一些特点

A.Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for循环(包括while循环)嵌套了十几层,这不仅是暴殄天物(没有发挥matlab所长),还浪费了你宝贵的时间,就只见左下角一直busy。
B.友好的界面,易于操作 ,虽然matlab一打开总看到命令行窗口,其实matlab有很多的GUI工具箱,可以很方便实现很多功能,对于一些不喜欢写代码的人来说,使用起来非常方便。举些例子曲线拟合工具箱cftool,曲面拟合工具箱sftool ,遗传算法工具箱gatool…等等
C.matlab绘图功能,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 agree
Inner 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 ==> mpower
Matrix 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:
--------------------------------------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)<0))  
bb =  
    3 5 9 11 13 15 17  
----------------------------------------------------------------------------------------------------------------------
----------------------------------hyperelastic 的方法----------------------------------------------------------  
N = 100;  
aa=randperm(N);  
index = find(((aa(2:N-1)>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.*d2<0 & d1<0)+1;
indmax=find(d1.*d2<0 & d1>0)+1;
------------------------------------------------------------------------------------------------------------------------
虽然基本原理一样,不过方法都各有特色。都是前辈们智慧的结晶。

4.matlab的一些资源
1)http://www.mathworks.commathworks的官方网站
2)http://www.mathtools.net/MATLAB/index.html这里有很多好的工具箱或者小的辅助函数可以下载,不过是国外的,e文和网络对来说感觉都是很不爽的事情。
3)http://matlab.myrice.com/Matlab大观园,估计只要在网上搜索过matlab
资料的就不会不知道它,园主是东北大学的薛定宇教授,一直从事MATLAB语言及其应用研究。
4)http://passmatlab.myetang.com/MATLAB/INDEX.HTM文宇工作室
5)http://sh.netsh.com/bbs/5186/matlab语言与应用,薛定宇的一个论坛
6)http://www.matwav.com/resource/newlk.asp中国学术交流园地,
7)http://www.matlabsky.com/forum.php matlab技术论坛
8)http://www.ilovematlab.cn/forum.phpmatlb中文论坛
9)http://www.mathworks.cn/matlabcentral/fileexchange 可以下载一些matlab代码


[ Last edited by dbb627 on 2012-4-5 at 11:36 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

默存8628

新虫 (小有名气)


★★★ 三星级,支持鼓励

深受启发!谢谢!
152楼2019-04-04 19:13:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 152 个回答

zl030091126

金虫 (正式写手)


送鲜花一朵
楼主经验非常丰富
3楼2012-04-05 01:53:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mijigege

禁虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
本帖内容被屏蔽

5楼2012-04-05 11:18:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chensichao

银虫 (初入文坛)



小木虫: 金币+0.5, 给个红包,谢谢回帖
看了之后对它产生了浓厚的兴趣啊
6楼2012-04-05 11:25:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 24年博士招生 +8 abinit432 2024-05-27 10/500 2024-06-01 17:38 by czp97
[硕博家园] 各位同学能否分享一下实验室的学生劳务发放标准呀? +18 ma3252788 2024-05-30 18/900 2024-06-01 17:02 by 落雨风霜
[考博] 24or25材料专业申博 +4 农夫三拳有点痛 2024-05-30 11/550 2024-06-01 14:45 by Napoleonsky
[硕博家园] 实验室太吵闹,无法安静学习,怎么办? +6 utahh 2024-05-31 11/550 2024-06-01 13:27 by utahh
[基金申请] 博后特别资助状态变化 +24 随梦而飞2017 2024-05-30 35/1750 2024-06-01 10:10 by 青岛阳仔
[基金申请] 数理的人才答辩通知发了吗 +7 yzy3327 2024-05-30 7/350 2024-06-01 09:15 by 撒哈拉西部
[硕博家园] 讨厌酒桌文化 +6 hahamyid 2024-05-31 6/300 2024-06-01 09:03 by lizhiweiouc
[考博] 申博求助?本硕双非一篇三区和四区去985工科非天坑专业有没有希望? +4 LYS1200 2024-05-29 6/300 2024-06-01 08:50 by 学术渣渣神
[基金申请] 讨论贴:好本子一定会被打招呼的淘汰吗 +36 ioe3937 2024-05-27 46/2300 2024-05-31 22:06 by wanghuawei
[高分子] MMA预聚体光固化发雾问题求助 +3 惠亚金总 2024-05-29 10/500 2024-05-31 14:59 by 惠亚金总
[有机交流] 苯酚和炔溴反应成醚 6+3 TONGMEIMEI 2024-05-26 12/600 2024-05-31 14:41 by TONGMEIMEI
[基金申请] 离职后国自然项目不能变更单位,在新单位还能申请新的国自然项目吗 5+3 宜兰 2024-05-31 6/300 2024-05-31 12:05 by felicity6056
[硕博家园] 求问endnote上Wiley引用格式在哪下载 +3 Elon. 2024-05-30 3/150 2024-05-31 10:13 by crazy peng
[文学芳草园] 对对子啊 +5 天若孤独 2024-05-29 7/350 2024-05-31 09:00 by wjykycg
[论文投稿] 审稿专家比较坚定的让补充实验,但实在没法补充实验,修回还有希望吗? (EPI+1) 3+3 qweasd12345 2024-05-29 6/300 2024-05-30 08:11 by qweasd12345
[硕博家园] 又想换工作 +15 brightmj 2024-05-27 20/1000 2024-05-29 23:25 by zyqchem
[博后之家] 2024公派博后申请 +4 326lhpqk 2024-05-27 5/250 2024-05-29 20:03 by @古月胡
[论文投稿] 有没有老师需要发表论文 +4 金老师论文助理- 2024-05-29 4/200 2024-05-29 16:51 by liuyupu132
[基金申请] E10开始送了,希望有好运 +5 sail 2024-05-27 5/250 2024-05-28 18:36 by 芝小芝
[论文投稿] EI期刊审稿人邮箱问题 5+3 shier妈妈 2024-05-27 4/200 2024-05-28 14:53 by topedit
信息提示
请填处理意见