优秀的程序员能够指导用户如何使用他编写的程序,而且在用户使用不当时,能够给出错误提示信息,并引导用户正确使用函数。
例子:先建立计算阶乘n!=n*(n-1)(n-2)……21,然后给函数ex(n)输入正确的参数和错误的参数。
function ex(n)
m = 1;
tic
for k = 2 : n
m = m * k;
end
toc
结果见下图:
程序并没有报错。其实输入的n的值已经不在k的取值范围了。此时应该提示用户输入有错。
程序添加如下语句:
function ex(n)
m = 1;
tic
if n < 0
error('input must be positive,stopped');
end
for k = 2 : n
m = m * k;
end
toc
运行见下图:
matlab编程时很多错误是由于越界造成的,尤其是使用矩阵时,要注意引用矩阵位置不要超过他的边界。另外,如果用户输入的函数参数数目超过设定的最大个数,或者类型不合要求也会出现这种错误。
还有对于输入参数数目小于设定个数的情形,程序员在编写程序时也应当注意处理这种情况,采用nargin函数可以判断输入参数的个数,从而设定为被指定的输入参数的值或者直接报错。
例子:
利用nargin函数,实现两个多项式的相加,并具有一定的报错功能。
function p = ex(a,b)
if nargin ==1
b = zeros(4,1)
elseif nargin == 0
error('empty input');
end
a = a(:).';b = b(:).';
na = length(a);nb = length(b);
p = [zeros(1,nb-na) a] + [zeros(1,na-nb) b];
end
结果如下: