近,我们这两周进行光电综合实验,要求使用Matlab的GUI编程。有一道题目是用Fox_Li数值迭代法对平行平面腔的自再现模求解近似结果,绘制最终自再现模的振幅和相位分布曲线。我在网上搜到了等于是该题答案的源代码,很开心。代码的可读性还算勉强,但遗憾的在表达第1次、第299次、第300次迭代时竟然使用的是几乎同样的代码段。为什么不在Matlab的函数里再设置一个子函数来实现迭代的过程呢?这样可以明显提高代码的简洁性和可读性嘛!而且该程序在变量命名方面也显得稍微有些混乱。于是,针对这两点,我在自己的源程序里给出了优化,并且经过多次调试,理论上自至臻完美。另外,由于Fox_Li数值迭代法涉及循环和积分,耗时非常长。我在程序里又增加了一个计时器,迭代300次,大约需要150s的时间,还在我们的tolerance范围内。当然,我的程序是属于Windows Application的范畴,有个漂亮的、友好的界面。
1