引言
MATLAB是我们在科研工作常用的一种语言,虽然最近有说MATLAB开始禁止一部分中国高校对其的使用,将来国产软件也会逐步赶上,但是目前来说,MATLAB还是值得我们进一步学习的。
这一篇文章介绍了MATLAB代码的编写规范,可以帮助我们写出更好的,更可读的代码。
毕竟有这么一句话:Any fool can write code that a computer can understand. Good programmers write code that humans can understand。
任何一个傻子都能写出可以运行的代码,但只有高手才能写出别人能看懂的代码。
拿出你的工匠精神,一起开始学习MATLAB的编码规范吧
for iFile = 1:nFiles
......
end
COLOR_RED, COLOR_GREEN, COLOR_BLUE
Segment.length
,而不是Segment.segmentLength
computetotalwidth()
,而不是compwid()
mean()
plot()
getobj(.); setappdata(.)
computweightedaverage(); computespread()
findoldestrecord(.); findheaviestelement(.);
initializeproblemstate(.);
soverpriced(.); iscomplete(.) ;hasLicense(.); canEvaluate(.); shouldSort(.);
get/set, add/remove, create/destroy, start/stop, insert/delete,
increment/decrement, old/new, begin/end, first/last, up/down, min/max,
next/previous, old/new, open/close, show/hide, suspend/resume, etc.
persistent x, y, z; global REVENUE_JANUARY, REVENUE_FEBRUARY
% pointArray Points are in rows with coordinates in columns
.THRESHOLD = 10; % Maximum noise level found by experiment.
result = zeros(nEntries,1);
for index = 1:nEntries
result(index) = foo(index);
end
THRESHOLD = .5
,而应该写成THRESHOLD = 0.5
totalSum = a + b + c + …
d + e;
function (param1, param2,…
param3)
setText ([‘Long line split’ …
‘into two parts.’]);
simpleSum = firstTerm+secondTerm;
simpleAverage = (firstTerm + secondTerm) / two;
foo(alpha, beta, gamma)
% ejectionFraction must be between 0 and 1, not a percentage.
% elapsedTimeSeconds must be one dimensional.
参考博客:如何规范地编写一个MATLAB函数文件
通常,函数文件由函数声明行、H1行、在线帮助文本区、编写和修改记录、函数主体等几个部分组成。格式如下:
function 输出形参表 = 函数名(输入形参表)
在线帮助文本区,其中第一行为H1行
编写和修改记录
函数主体
如下是一个实例:
function spir_len = spirallength(d, n, lcolor) <<< 函数声明行
% SPIRALLENGTH plot a circle of radius as r in the provided color and calculate its area <<< H1行
% 输入参数: <<< 在线帮助文本区
% d: 螺旋的旋距
% n: 螺旋的圈数
% lcolor:画图线的颜色
% 输出参数:
% spir_len:螺旋的周长
% 调用说明:
% spirallength(d,n):以参数d,n画螺旋线,螺旋线默认为蓝色
% spirallength(d,n,lcolor):以参数d,n,lcolor画螺旋线
% spir_len = spirallength(d,n):计算螺旋线的周长,并以蓝色填充螺旋线
% spir_len = spirallength(d,n,lcolor):计算螺旋线的周长,并以lcolor颜色填充螺旋线 <<< 在线帮助文本区
% 版本号V1.0,编写于1999年9月9号,修改于1999年9月10号,作者:亚索 <<< 编写与修改记录
if nargin > 3 <<< 函数主体
error('输入变量过多!');
elseif nargin == 2
lcolor = 'b'; % 默认情况下为蓝色
end
j = sqrt(-1);
phi = 0 : pi/1000 : n*2*pi;
amp = 0 : d/2000 : n*d;
spir = amp .* exp(j*phi);
if nargout == 1
spir_len = sum(abs(diff(spir)));
fill(real(spir), imag(spir), lcolor);
elseif nargout == 0
plot(spir, lcolor);
else
error('输出变量过多!');
end
axis('square');
Richard Johnson. MATLAB Programming Style Guidelines. 2002