将MATLAB代码文件与结果一起保存在一个文件夹中?

时间:2013-09-23 20:11:30

标签: excel matlab version-control save savechanges

我正在处理数据集并遇到问题 - 虽然我将所有相关的输出变量写入一个带时间戳的大型Excel文件,但我不保存实际生成该结果的代码。因此,如果我尝试重新创建一组结果,我不能不依赖于内存(这显然不是一个好的计划)。我想知道是否有一个命令可以帮助我保存用于生成输出Excel文件的m文件,以及Excel文件本身,在一个文件夹中我可以命名和时间戳,所以我不喜欢必须手动完成此操作。

在我完美的世界中,我将运行调用4或5个其他函数m文件的主代码文件,然后将所有这些m文件与Excel输出一起保存到文件夹名称results_YYYYMMDDTIME。这个功能是否存在?我似乎无法找到它。

1 个答案:

答案 0 :(得分:1)

内置了这样的功能。

您可以使用depfunmfilename来构建主要功能的依赖关系树。 depfun(mfilename())将返回当前正在执行的m文件调用的所有函数/ m文件的列表。 这将包括MATLAB内置的所有文件,您可能希望删除它们(并且只在Excel工作表中记录MATLAB版本)。

作为伪代码:

% get all files:
dependencies = depfun(mfilename());
for all dependencies:
    if not a matlab-builtin:
        copyfile(dependency, your_folder)

作为“长期”解决方案,您可能需要检查是否使用版本控制系统(如subversion),mercurial(或许多其他版本之一)适用于您的情况。 在较大的项目中,这是记录用于产生特定结果的源代码版本的首选方式。