程序调试和错误处理

在编写程序的过程中难免会出现错误,使得程序无法继续运行或者结果不正确。MATLAB中提供了多种调试和错误处理手段。程序调试技巧在很大程度上是经验性的,需要不断积累。[大谦MATLAB,dqmatlab点com]

用try-catch语句检查错误

节简单地介绍了try-catch语句,使用该语句可以捕获未知的错误。

【例3-26】现有计算两个矩阵相乘的函数,在无法正确计算结果时将抛出错误。

code.matlab
function matrixMultiply(A, B)
try
   X = A * B
catch
   disp '** 计算A * B时出错。'
end

在上面的try-catch语句中,try块中的语句可以正常执行,catch块抛出出错信息。下面的语句首先定义两个矩阵A和B,然后调用matrixMultiply函数计算它们的乘积。由于A和B不满足矩阵相乘的条件,即A的列数不等于B的行数,所以结果出错。

code.matlab
A = [1  2  3; 6  7  2; 0  1  5];
B = [9  5  6; 0  4  9];
matrixMultiply(A, B)
**计算A * B时出错。

错误和警告信息

使用MATLAB的error和warning函数可以报告错误和警告信息并延迟程序的运行。

【例3-27】

code.matlab
if n < 1
    error('n必须大于或等于1。')
end

如果n小于1,则给出出错信息“n必须大于或等于1”。

同样,下面用warning函数给出警告信息。

code.matlab
warning('输入内容必须是字符串')

警告输入内容必须是字符串。

用“编辑器”工具栏进行调试

使用MATLAB“编辑器”工具栏中的按钮选项,可以很方便地进行程序调试。具体的高度方式大体可以分为3种,即断点调试、块执行以及逐节调试等。

1.断点调试

在进行断点调试时,程序运行到断点处就会停下来,这样有利于很快找到错误出现的位置。此种调试方式需要先设置断点。要设置断点,在编辑器中,在需要设置断点的代码前单击鼠标左键,显示红色圆点,即为断点;再次单击,取消断点设置。

2.块执行

在编辑器中选择要执行的内容,单击鼠标右键,在弹出的快捷菜单中单击“执行所选内容”或“执行所选节”命令实现块执行。

3.逐节调试

在“编辑器”工具栏中单击“运行并前进”按钮,会执行当前节程序并前进到下一节。