写给matlab新手的几句话[转]

转载 2016年08月28日 15:51:28

matlab博大精深,说到底我也只不过是个初学者,只是学的时间比新手长了一点,现在写几句给新手,希望能给你们有点帮助
1 学Matlab
并不难,难的是学会怎么用。 
2不要
试图掌握matlab的每一个功能,熟悉和你专业最相关的部分就可以了。 
3 不要问:明天要交作业了,哪位大侠帮忙写个程序吧,或初学matlab,不懂呀,大哥大姐帮忙写个程序之类的话
不要等到要用到才去学,如果你有兴趣,你有时间,你可以多学些东西,说不定什么时候就用了,机会只偏爱那些有准备的头脑,到时候就不会说什么,要做东西想让人指点,基础的东西来不及仔细看了,一写程序吗,低级错误满天飞
4 不要说:不要让我看
matlab英文的帮助我看不懂--谁都是从不懂到懂的 
5 不要担心:我编程能力差,我一定用不好matlab。 
6 不要
只问不学 
7 学maltab
要有耐心 
8 看到某本书中或论坛的帖子中解决问题的方法要试着解决类似的问题,
要举一反三,要学会变通 
9 有了问题
先自己想,察看帮助,1个小时后没有结果再问别人 ,不要一有问题就发问,然后什么都不管了,把希望寄托在别人身上 
10 学会
用搜索引擎,在网上可以找到很多资料,有的问题一搜索就能找到的,就不要来问别人了 
11
要多动脑,多动手写程序、调试看程序时候多想几个为什么,理解别人程序中精华的东西,多自己调调程序,可以改改程序,把知识转成自己的,弄懂一两个经典例子比粗粗的看一大书要好,值得一提是不是一下子就能看懂相对比较长,比较复杂的程序的,要做的是自己慢慢去分析,利用已经有的资料和帮助,等慢慢搞懂它,要多看几遍,相信多看一遍你就会有一些新的认识,一直到你已经掌握里例子的精华。 
12 
多读matlab高手写的程序,帖子找到一个高手,在几个大的论坛可以搜索出一大堆的帖子,然后慢慢去看吧,从中可以学到很多东西,也许你会发现很多你都看不懂,这很正常,别人写程序考虑的是能实现这样的功能,运行效率等问题,而不是考虑是不是很容易能让别人理解,你就看你现在能看懂,再看些通过你断点调试,查help能看明白的,看不懂的就先放下,遇到好的和看不懂,你又很挺感兴趣的话题,你先收藏起来,过段时间你再回头看看,你会发现,每看一遍,你就会多懂一些东西,当你第三遍甚至第四遍看同一个程序的时候,也许你就会有豁然开朗的感觉。一个比较长的程序,首先不要怕长,把它分解成一句一句,一句一句看懂它。要明白一口吃不成胖子,好东西要慢慢体会,才能领会。 
13 
电脑上复制粘贴很方便,对于别人解决的你专业上的问题,最好自己写一遍,这样印象深刻,对于不懂的函数用法的函数,help中查查,能看懂多少算多少,对于程序断点调试一遍,弄清楚每个语句的功能,

14 尽量摆脱c编程的习惯,总爱用循环,能不用的循环的尽量不用,掌握矢量化的精髓
15 
善于总结,学习过的知识,看过好的帖子可以收藏起来,过段时间再复习一下,一段时间的积累,你会发现你的水平在慢慢提高
16 多用help,see also lookfor get,set 等常用命令
17 要
大胆的去试,试过才知道可不可以,如有人问可不可以把多个子程序放在一个m文件中,呵呵,试试不就知道了
18 
多参与讨论,不要只关心自己的问题,也经常关注别人的帖子,从中也可以学到不少东西的
19 
提醒一句,不要做只会下资料而不看的收藏家,这样对你没什么意义,书不在于多,真的看一两本书也就够了,以后要用的时候,再去查书,一味的东看看西看看,见了别人的资料,不关好不好,就留信箱的人,我感觉也不该这样,有了那么多资料,就别想着还有没有比这更好的了,开始学吧先写这么多吧,希望对新手能有点用

感觉语言是相通的,不一定只针对matlab这门语言
如何写程序,如果你还是初学者,那么尽量不要复制粘贴,那样你是永远也无法学会写程序的。另外也不要对着别人的程序,一个字一个字敲进去,那样的话你只能成为一名优秀的打字员。一个比较好的方法是先读懂他,理清他的思路,然后自己动手写,写不出来的时间再看看别人的程序,然后对照的看,你的和他的程序差异在哪里,写的过程就是提高的过程。

程序运行有错误怎么办,好多错误。首先,别害怕错误,这是每一个人都会碰到的问题,大牛,小虾都一样,你对你自己说 这不机会又来了,调程序的过程就是提高的过程。不要一遇到错误就来论坛发问了,如何调,关键是看错误提示,看错误的类型及出现在哪条语句上。
好好练自己的调试能力,这不仅可以帮你找到一些错误,有是碰到一些读不懂的程序,借助断点调试可以帮你读懂程序
还不行怎么办,用搜索引擎找答案(有时候把错误提示输进去就可以找到答案了)
还不行,这才发贴和别人交流
。。。。

写程序原则 尽量写的简单 通俗容易懂,让那些不如你聪明的人都能看懂,命名的时候做到见名知意,写的时间多加点注释,不然,不要说别人读不懂你的程序,等过几天,你自己也读不懂了,可以看看matlab里的函数,注释也写的很详细,当你觉得有些方法比较常用的时候,你可以封装成函数,加上一些说明,以后要用的时候,直接调用就可以了,注重代码的重用性。

勿在浮砂筑高台,基础很重要,为什么学matlab ,如果你只是把它当成 c c++的附属品,用这些语言的思维来写一些奇怪的类matlab程序,我想你还是直接用c 或 c ++更合适,不要一开始就想着用matlab 做出什么东西,好好看一本matlab的基础书,这些基础对你以后的进阶会很有帮助。再说混合编程,什么都不懂就想着去混合编程是不实际的,maltab版本 vs 的版本不同,都会对混合编程影响的。 
所以结果是对着别人的例子来做也不一定会做出来,一是别人讲的有些细节问题没讲清楚,二是版本问题。就算做出来,如果不明白为什么要这样做,又有多大意义呢。然后自己做一个,又不会了。
说这些的目的无非是希望想做混合编程的朋友多了解一些基础的东西,否则在混合编程这一块上会浪费很多时间,结果还是没有解决问题。
7.0系列 深入浅出matalb混合编程这本书是值得一看的。
多看帮助之类的话这里就不多说了。
现在很多人写书都太浮躁了,有的本身水平也不够,有的翻译的也很垃圾,选书的话请擦亮眼睛,不好的书不但浪费了钱,还浪费了时间,而且会让你怀疑自己的能力水平。说的有点远了。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

本人接触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); 
复制代码
这样的修改带来的好处是很可观的。又如: 
for j = 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的“帮助”那里搜索“Functions Used in Vectorizing”就可以找到一些,其他的也可以找相关的书籍(没找到?不可能,电子版总可以下载到的)!
对提高matlab编程能力的方法,我想主要有以下三个: 
1. 查help
2. 多上上论坛,搜索帖子、发帖子问人
3. 阅读别人、特别是牛人的程序
当然了,正如所有的程序语言一样,“3分课本7分上机”,一定要动手才行,不能光看。多想、多思考、多尝试,才是正路。 
复制代码
最后,整理一下常用的快捷键(用【】表示)或命令: 
1. 在命令窗口(Command Window)中:
1) 【上、下键】――切换到之前、之后的命令,可以重复按多次来达到你想要的命令
2) clc――清除命令窗口显示的语句,此命令并不清空当前工作区的变量,仅仅是把屏幕上显示出来的语句清除掉
3) clear――这个才是清空当前工作区的变量命令,常用语句clear all来完成
4) 【Tab】键――(转自版友心灯)在matlab@hit.edu.cn看到的:在command窗口,输入一个命令的前几个字符,然后按tab键,会弹出前面含这几个字符的所有命令,找到你要的命令,回车,就可以自动完成。目前讨论结果是:matlab6.5版本中,如果候选命令超过100个,则不显示。而在matlab7以后版本中,则没有这个限制,均可正常提示
5) 【Ctrl+C】(或【Ctrl+Break】)――(转自版友yangjin_ren)在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】――运行程序 
复制代码
其余的例如在Debug状态下的快捷键就不多说了,自己看菜单Debug吧!
累了, 有时间再写吧。希望大家多交流~~~~~~
Coming: (以下东西都是一年前做的了,不知道能否记起,呵呵) 
1) 关于神经网络的――调用matlab的nntool命令后的使用问题(我做的时候没有看过其他书籍或资料,是自己闭门造车的结果,如果写之前发现其他书籍有相关介绍的话就不写了)
2) 关于外部接口的――matlab与C++Builder的接口,想详细介绍如何利用matcom 4.5在C++Builder中调用matlab的代码以及matcom的一些技巧。由于我不是搞项目开发的(搞科研、搞课题的),所以对VC不熟悉,大学的时候学过一点,不过我想对于搞科研来说C++Builder就足够了,免去很多麻烦,Builder在界面设计和数据库连接上面(我只接触过这两方面)还是做得不错的。同样,如果发现其他书籍上有类似的东西就不写了
3) GUI方面也写写吧,只是一点点心得或者体会,呵呵,这个相对简单些,篇幅相对要少些。

相关文章推荐

写给matlab新手的几句话

  • 2009年04月15日 14:24
  • 5KB
  • 下载

写给MATLAB新手的几句话

  • 2014年09月14日 13:06
  • 48KB
  • 下载

【转】给年轻程序员的几句话

给年轻程序员的几句话 导读:本文是从作者Avdi Grimm发表的一篇博客《 Letter to a Young Developer》翻译而来。文中给想要成为一名成功的程序员提供了几点建议,...

写给matlab新手的几句话

  • 2009年11月19日 20:33
  • 37KB
  • 下载

写给matlab新手的几句话

  • 2009年03月19日 08:34
  • 5KB
  • 下载

几句话弄清楚Java参数传值还是传引用

最近刷题用递归解决关于树的问题的时候,在递归函数调用的时候什么时候传入值,什么时候传入引用有疑问,因为这关系到什么时候我们需要恢复现场,什么时候不需要。在网上搜索了一下,感觉这篇总结的非常简单明了,简...
  • yangliuy
  • yangliuy
  • 2015年01月28日 14:58
  • 16417

it受用的几句话

  • 2011年05月27日 15:10
  • 651B
  • 下载

c语言几句话

  • 2013年06月13日 23:46
  • 76KB
  • 下载

给年轻程序员的几句话

转自:http://sd.csdn.net/a/20110914/304346.html   导读:本文是从作者Avdi Grimm发表的一篇博客《 Letter to a Young Devel...
  • iatbst
  • iatbst
  • 2011年09月15日 06:42
  • 127

程序员必读的几句话

  • 2012年08月26日 05:12
  • 20KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写给matlab新手的几句话[转]
举报原因:
原因补充:

(最多只允许输入30个字)