编程中常见错误
1 编程中常见错误1.1 常见语法错误
1.1.1 引用未定义变量
clear all
a=234
b=a
c=d
??? Undefined function or variable 'd'.
1.1.2 下标越界
clear all
a=rand(1,100);
for i=1:100,
a(i)=i^2;
end
for j=2:101,
b(j)=a(j);
end
??? Index exceeds matrix dimensions.
1.1.3 维数不同赋值
?clear all
a=;
b=zeros(1,5);
for i=1:10,
b(i,:)=a.^i;
end
??? In an assignment A(matrix,:) = B, the number of columns in A and B
must be the same.
1.2 逻辑错误
1.2.1 变量未初始化
a=fix(10*rand(1,10));
m = length(a);
for i=1:m-1,
for j=i+1:m,
it=it+1;
%error code
b(it)=a(i)*a(i);%right code: b(it)=a(i)*a(j)
end
end
计数器变量it没有初始化
1.2.2 变量名误用
例子1:获得向量a中任取2个元素相乘的所有结果
a=fix(10*rand(1,10));
m = length(a);
it=0;
for i=1:m-1,
for j=i+1:m,
it=it+1;
%error code
b(it)=a(i)*a(i);%right code: b(it)=a(i)*a(j)
end
end
1.2.3 程序实现错误
没有按照模型(或算法)本身的意图实现编程。这种错误可能出现在程序的任何地方。
1.3 如何查找程序中的错误
有两类错误:
语法错误;
运行错误
如果碰到语法错误,相对来说比较容易解决;
如果遇到“运行错误”,即运行结果明显错误或者怀疑有错,此时查找错误比较困难;
1.3.1 查找错误的一般原则
先检查最可能出现错误的代码;
从上到下,逐行查错;
1.3.2 一般查错顺序
此时查错可以按以下顺序:
1、 表达式中的变量名是否用错了
2、 原则查看循环变量的范围是否有问题;
3、 查看向量、矩阵变量在赋值语句的下标表达式是否有问题
4、 查看算法中的逻辑错误,即程序没有实现算法的意图(这种错误不一定好找)
5、 检查for,while,if等语句是否与end配对,确保正确配对
6、 其他
注意:以上是一些经验性东西,还需要在实践中总结;
页:
[1]