matlab-代码-规范
1. 标识符命名原则 标识符的名字应当直观,其长度应当符合“最小长度,最大信息量”原则。 1) 非矩阵变量: Ø 变量名应该以小写字母开头的大小写混合形式 譬如:shadowFadingTable,servingSector, rxBufferForRe userID,userPriorityProfile,mcsOneRetri等 Ø 循环变量应该以i、j、k等为前缀,如 for i_File = 1:nFiles for j_Position = 1:nPositions Ø 避免仅用最后的字母s(表示单复数)区别两个变量, 例如point和points. 可以用类似pointArray的形式加以区别。 Ø 避免使用一个关键字或者特殊意义的字作为变量名 Ø 结构体的命名应该以一个大写字母开头,结构体的命名应该是暗示性的,并且不需要包括字段名(fieldname)应采用Segment.length,避免用Segment.SegmentLength 2) 常数: Ø 命名常数(包括全局变量)应该采用大写字母,用下划线分割单词,如MAX_ITERATIONS,COLOR_RED Ø 参数可以以某些通用类型名作为前缀,如COLOR_RED,COLOR_GREEN 3) 草稿变量,含矩阵,结构体,元胞: Ø 应用范围比较大的变量应该具有有意义的变量名,作为“草稿变量”的的临时存储空间或者索引可以用短名字。程序员在读到这样的变量的时候,可以假定这个变量的值在没有几行之后的代码中就不会再用到。通常的“草稿变量”整数的时候用i,j,k,m,n(最好少用i,j,因为他们作为MATLAB中的永久性常量表示虚数单位的)。双精度数的时候常用x,y和z。m表示矩阵,没有m表示标量 Ø 命名上将cell, struct与MATLAB中最常见的numeric array, 即数值矩阵区分开来. Ø n用于整数变量, 如n_File. Ø m用于一般的矩阵,如matrix_channelHFResponse; Ø c用于cell array, 如cell_temp= cell(1, 4); Ø s用于struct array, 如stuct_user= struct( field , {}); Ø matrix,cell,stuct后面的channelHFResponse, user用来表示有特定含义的中间变量,比如matrix_channelHFResponse,用来表示计算channelHFResponse时中间变量。 4) 函数: Ø 函数名应该采用小写字母,函数名应该是具有意义的,下划线分割单词 如采用: compute_total_width()避免compwid() Ø 前缀get/set 应该作为访问对象或者属性的保留前缀,如getobj(.)。 Ø 前缀compute应该用在计算某些量的函数的地方computespread()。 Ø 前缀 is应该用在布尔函数的命名的地方,如 iscomplete()。 Ø Find,initialize类似。 2. 编码及文档注释要求及实例 2.1 代码版式 2.1.1 M文件函数说明 function [ 函数输出参数] = 函数名( 函数输入 ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %此处为函数名,如果不是函数文件就取消此行 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %创建人: %日 期: %修改人: %日 期: %函数变量及功能的简单描述 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --函数主体 2.1.2 编码设计 本部分说明了M文件编码的设计,包括以下几个方面: 垂直间隔,水平间隔,缩进与对齐,注释。 2.1.2.1 垂直间隔 1、空行 空行起着分割块或段落的作用,块(段落)之间一般留一个或两个空行。 空行使用规则: Ø 逻辑块之间要留空行; Ø 结构体定义之间要留空行; Ø 函数定义体之间要留空行; Ø 函数体内,完整的控制结构和单独的语句块之间要留空行; Ø 逻辑上密切相关的语句序列之间不要留空行; 2、换行注意事项 Ø 不在一行使用多个语句。唯一的例外是for语句。For语句的初始化,条件和循环都可以在一行中。例如 for (bcnl_num = 0; bcnl_num count) bcnl_num = count; Ø {}与case总是独占一行。 2.1.2.2 水平间隔 Ø 逗号后面要有空格,但是不要在结构的成员与指针操作符前后有空格。例如: foo.index Ø 在 =, } 2.1.2.4 代码行及行内空格 (1) 代码行中不运行出现中文。 (2) 关键字后要留空格。像const、inline、case等关键字后要留空格,以辨析关键字;像if、for、do、while、switch等关键字后要留空格再跟左括号“(”,以突出关键字。 (3) “(”若不在一行的开始,应与前面的字符空格。例如,if、while、do-while、switch、for语句等控制结