分享

重新学习MATLAB——高手必备:命名规则与编程习惯

 幽州浅水 2019-02-08

了解点儿MATLAB,知道它非常有用,但一直不太会用,如何快速掌握并运用它呢?

本专栏力争用最简洁的语言和逻辑,让您在最短时间内,学到教材课程中罕见的MATLAB运用技法,从新手迈向成手。

MATLAB高手如何编程

一门编程语言,语法当然是基础,但是还远远不够,一定要在理解语法的基础上,遵守一定的规则,养成好的编程习惯

一个MATLAB高手不一定非得背过多少函数,不一定非得编写过多少行代码,但一定有三个特征:

  • A 程序结构清晰,易维护

结构清晰就是思路清晰,命名一目了然,注释一目了然,功能一止了然,即使隔了很久再看自己的程序,也能马上想起当时的思路;

  • B 守规则,代码有一致性

在什么情况下,如何编写代码,已经形成一个规则;这个规则可以和别人不同,但一定要易记易用,并且坚持遵守,拿出代码前后要统一,不要把自己都搞糊涂;

  • C 简洁,矩阵化编程

这一条与许多其它语言有些不同,MATLAB的矩阵化编程,有时会让程序简洁得难以置信,而这也是使用M语言编程一定要努力追求的。

仅凭代码的形式就能看出一个人的水平

本节内容在教材/课程中,非常少见,却很重要,所以本节会尽量多举一些实际的例子,让大家能直观体会和记忆。

如何命名变量

那些把变量直接命名成a b c d的习惯,会把程序带入混乱,下面4条,请认真体会:

  • 1 变量用驼峰命名法,首字母小写

cityLocationrobotPosition

下角标用下划线表示,如:

location_a1date_2
  • 2 切忌不要使用拼音,要使用英文

不要写出 chengshiWeizhi 这样的变量!体会一下区别:

cityLocation

  • 3 变量的长短,大致上要对应“意义范围”

举例,上面的 cityLocation 一看就用于比较大的意义范围,如果只在几行代码中有效,之后就不会再用到了,可以简写:

cityLoc 甚至 loc
  • 4 几个常用的特殊前辍

如:

maxGrade 最大成绩值minCost 最小的花费numStreet 街号sumCost 消费的和arrayLine 用于存储直线的数组matrixPoint 用于存储点位置的矩阵iFiles 代替for循环中的i的有“意义”的变量jPosition 意义同上

常量命名规则

在编程中,有许多常量的存在,常量就是那些''有特殊意义的''“不变化”的恒量。比如:

编写一个作图程序,画中国的五星红旗,那么两种颜色就可以在程序开始声明定义为:红色和黄色。那么,每次用到这两个颜色时,就不需要写出它们的颜色向量,而是直接引用红色和黄色。


好处是:

  • 意义明确
  • 方便后期一次性修改
  • 不易出错

常量的命名规则:

全大写,以下划线分割单词,如:

COLOR_RED COLOR_YELLOW

函数和脚本如何命名?

  • A 保证函数和脚本的命名与保存M文件名一致

这一点非常重要,不想自己陷入混乱的话,最好这样做。

  • B 命名不怕长,就怕一看就糊涂

如,要写成:

computetotalwidth()

不要简写成:

compwid()

  • C 习惯前缀

对于函数,根据功能要加上前缀,如:

computeLocation 计算功能getChar 取值功能setPosition 设置功能findKeyPoint 寻找功能initializeMessageMatrix 初始化功能isColorExist 判断条件真假功能

如果没有明确意义最好能在函数名称前加一个func,如

funcMeaningless 明确这是函数

对于脚本,没有明确意义时,前缀用:

scriptJustPackage 明确这是脚本

M文件编写习惯

  • A 模块化

编程最重要的思想之一,就是模块化,化大为小,化繁为简。如何做到呢?

首选使用函数,函数是最佳的打包代码的方式;次选脚本,因为脚本代码不擅长于重复使用。

模块化!再复杂的程序也能写出来

  • B 使用结构体作为函数的输入参数

有过编程经验的同学一点便知,当一个函数有许多许多的输入参数时,怎么办?难道括号里跟着一大堆参数?

把要输入的参数存入一个结构体,作为函数输入参数,一下子变得清晰得不得了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多