Language is like a cracked kettle on which we beat tuned to dance to, while all the time we long to move the stars to pity.” - Gustave Flaubert, in Madame Bovary
——摘自MATLAB 编程风格指南-Richard Johnson 著
MATLAB和很多计算机成语语言一样需要代码(格式)的 正确性、清晰性与通用性。良好的写作规范的程序比糟糕的写作规范的要好,因为他们具有较少的错误、易于调试与修改,因此,从 一开始就考虑风格是很重要的。我们写出来的程序别人看不懂,你写的再好那也是一堆垃圾。MATLA的程序语言都是在m文件里完成的。
推荐俩个pdf大家可以自行看一下。就把其中我认为几个中要的部分个大家罗列一下。
http://dl.dbank.com/c081rv1r3q Matlab编程风格指南
http://dl.dbank.com/c0te7q7e0i 华为公司程序培训教材
- 排版
- 注释
注释文字应该简洁易读
一个糟糕的或者是无用的注释反而会影响读者的正常理解。N.Schryer 提到:“如果代码与注释不一致,那么或许两者都是错误的。”一个通常更重要的是注释应该讲的是“为什么”(Why)和“怎么做”(how),而不是“是什么”(what)。
所有的注释语句应该用英语写作
在国际环境中,英语是最提倡使用的语言。这个不仅仅是因为国际环境的问题,使用过MATLAB程序的人都是到她的汉化是多么的垃圾。而且使用汉语很多时候都是运行不了的,所以一定要养成使用英语的习惯,当然有时可以适当的使用拼音。(当然仅限于这个程序是自己看的。)
- 文档规范化
Dick Brandon讲到:
“Documentation is like sex;when it's good,it's very,very good,and when it's bad,it's better than nothing.”
(这句话太经典了)
- 首先考虑书写文档
下面介绍个人认为是m文件最重要的功能,但是大部分书籍和资料都没有提到这一个功能。就是m文件里的 publish功能!!
以前在学习自动控制时,想起做的那些PPT,想要把matlab程序非常好看的贴到ppt上是一件非常有难度的一件事情,而且为了打印作业我还得把m文件里的程序复制到word文档然后再把图片进行编排,花费了相当多的宝贵时间。那么现在有了这个功能,一切变得那么的简单。(当然有的时候不会出现你要的下过,还是需要花费点时间进行后期处理的,不过还是可以节省很多时间,当然前提是你遵守了上面的那些编写规则!!)
强烈推荐大家把这个视频看完了!!短短的5分钟,但是可以为你以后编写matlab程序剩下无数时间。
http://www.mathworks.com/videos/matlab/publishing-matlab-code-from-the-editor.html
publish功能的实现你要知道一个技巧就是%%后面一定要有一个空格,%后也需要一个空格!!!!
谈一谈 m文件 的 debug 功能
用过 C 编辑器的都有这种感觉,就是让程序能够在自己的调控下一点一点运行,非常有助于自己的理解,并且十分有助于程序错误的调试,也就是我们常说的debug。这种功能在 VC++ 或是 TC 上都很容易实现,在一些单片机的集成开发环境 IDE 中也很容易实现。我想说的是,在MATLAB里面,这种功能也是异常的强大的。
- debug菜单
step :单步,不进入函数
step in :单步,进入子函数单步
step out :在函数中的话跳出函数,否则直接跳入下个断点处
save and run :存储,运行
go until cursor :运行到光标处
可以看到,以上几个按钮和 C 编辑器中是基本一样的意思
断点操作
set/clear breakpoint:设置清除断点
set/modify conditional breakpoint :设置或修改条件断点,条件断点可以使程序满足一定条件时停止
enable/diable breakpoints :使断点有效或无效
clear breakpoints in all files :清除所有断点
stop if errors/warnings :程序出现错误或警告时停止运行,进入调试但不包括 try...catch 中的错误
进入调试时,命令窗口出现如下字样
K>>
运行到断点,程序停止,如要继续,则使用 debug 中的 continue 按钮
切换工作空间,结束对程序的调试,打开编辑窗口中的 stack 列表,选择 base ,切换到主工作空间。记得要清楚掉断点,红色圆点去掉了,绿色箭头(调试)变为白色,然后选择 continue ,白色箭头去掉,调试完成。
以下是一些常用的调试命令( 转张卫国《 MATLAB 程序设计与应用》):
dbstop 断点设置
dbclear 清楚断点
dbcont 继续
dbdown/dbup 修改工作空间的上下文关系
dbquit 退出调试
dbstack 显示当前堆栈的状态
dbstatus 显示所有已设置的断点
dbstep 执行一行或多行代码
dbtype 显示 M 文件代码和相应的行号
内容不多,但是我觉得编写程序时 debug 是非常有用的,一些错误,不用单步等往往不容易找到,特别是在一写控制流或者有点乘等语句的m文件里。
对于m文件调用函数功能在上回控制流的那个帖子里已经写出。把自己想要介绍的m文件的功能都介绍完成了。
最后再次强调一遍,短短的5分钟,但是可以为你以后编写matlab程序剩下无数时间。
http://www.mathworks.com/videos/matlab/publishing-matlab-code-from-the-editor.html
一定要看一下这个!!!