在编写程序的过程中难免会出现错误,使得程序无法继续运行或者结果不正确。MATLAB中提供了多种调试和错误处理手段。程序调试技巧在很大程度上是经验性的,需要不断积累。[大谦MATLAB,dqmatlab点com]
用try-catch语句检查错误
try...catch语句可以进行错误捕获,它把有可能引起异常的语句放在try控制块中,这样当try控制块中语句引起异常时,catch控制块就可以捕获它,并针对不同的错误类型,进行不同的处理。try...catch命令的语法格式为:
try
执行语句…,
catch
执行语句…,
end
现有计算两个矩阵相乘的函数,在无法正确计算结果时将抛出错误。
function matrixMultiply(A, B)
try
X=A * B
catch
disp '** 计算A * B时出错。'
end
将函数保存到M文件catcherr.m。在上面的try-catch语句中,try块中的语句不能正常执行时,catch块抛出出错信息。在命令窗口输入下面的语句,首先定义两个矩阵A和B,然后调用matrixMultiply函数计算它们的乘积。由于A和B不满足矩阵相乘的条件,即A的列数不等于B的行数,所以结果出错。
>> 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函数可以报告错误和警告信息并延迟程序的运行。
下面的代码判断n的大小,如果n小于1,则给出出错信息“n必须大于或等于1”。在命令窗口输入:
>> n=0;
>> if n < 1
error('n必须大于或等于1。')
end
返回结果:
n必须大于或等于1。
同样,下面用warning函数给出警告信息。
warning('输入内容必须是字符串')
警告输入内容必须是字符串。
用“编辑器”工具栏进行调试
使用MATLAB“编辑器”工具栏中的按钮选项,可以很方便地进行程序调试。具体的高度方式大体可以分为3种,即断点调试、块执行以及逐节调试等。
1.断点调试
在进行断点调试时,程序运行到断点处就会停下来,这样有利于很快找到错误出现的位置。此种调试方式需要先设置断点。要设置断点,在编辑器中,在需要设置断点的代码前单击鼠标左键,显示红色圆点,即为断点;再次单击,取消断点设置。
2.块执行
在编辑器中选择要执行的内容,单击鼠标右键,在弹出的快捷菜单中单击“执行所选内容”或“执行所选节”命令实现块执行。
3.逐节调试
在“编辑器”工具栏中单击“运行并前进”按钮,会执行当前节程序并前进到下一节。