Flying Fish

Thursday, January 27, 2005

解释执行的 Matlab

Matlab 的代码是解释执行的,运行函数或脚本时不需要编译,这样可以减少从编程到运行的时间,但是这样也使得它无法实现通常程序编译时的变量类型检查,这样的做法既有好处也有坏处。

好处是,matlab 中编写函数的相当方便,变量不需要申明,没有类型检查,函数的调用也没有规定输入参数必须匹配。对于一些经常在改动的函数,我通常把它们的参数归成几类,分别存在不同的结构(structure) 里,这样如果要增加或减少一些参数只需要在函数调用前改动这些结构里的域(field),而不需要修改函数入口的参数定义,节省了修改代码的时间。

但是这样一来也有不少问题,没有变量类型检查后,好多错误(类型不匹配,变量未定义便引用)只有在运行时才会出现,因此有些新写的程序要试着运行好多次之后才通过,对于一些运行时间较长的程序,这种调试方法非常不方便,必须要在写程序时要加倍小心,但是错误还是在所难免 :(

最后说一个调试 matlab 的小技巧,用这段代码:

try
... code to be debugged ...
catch
keyboard;
end

这样在程序执行出错的时候会自动转到键盘命令行调试,你就可以输入命令来查看各种当时的变量了。


Navigation: Go to [My Homepage] [My Research Blog] [My Courses Blog]

0 Comments:

Post a Comment

<< Home