我的问题如下:
我有很多(~1000)相互调用的Matlab脚本,这些脚本编写得非常糟糕,经常会破坏彼此的环境并且通常变得无法管理。
我遇到这个问题的原因之一是我需要编写覆盖其中很大一部分的测试套件。幸运的是,对于他们中的大多数人来说,正确性的主要标准是'他们不会崩溃。
在循环中逐个运行它们通常不是一种选择,因为它们会定期调用clear classes
,close all
,clc
,阴影内置函数和运算符等等。
所以我最初的目标是找到一种在某种孤立环境中运行matlab脚本的方法,但我没有找到一种好方法。 (建议欢迎,但这不是主要问题。)
因为无论如何我都需要将它们全部转换为函数,我正在寻找一些方法来自动地,或者至少半自动地进行。
我的意思是半自动:
function varargout = $filename( varargin )
作为文件的第一行,end
作为最后一行。这至少会使它们作为具有feval
的函数和所有这些函数运行,并且(更重要的是)防止它们损坏测试运行器。 第1点我可以使用sed
来实现自己,因为我也可以摆脱所有clear classes
和clc
,但选项2和3似乎更难。有没有至少与选项2或3类似的东西?