Сохранить файл кода MATLAB вместе с результатами в одной папке?
Я обрабатываю набор данных и сталкиваюсь с проблемой - хотя я записываю все соответствующие выходные переменные в большой файл Excel с меткой времени, я не сохраняю код, который фактически сгенерировал этот результат. Поэтому, если я пытаюсь воссоздать определенный набор результатов, я не могу сделать это, не полагаясь на память (что, очевидно, не является хорошим планом). Я хотел бы знать, есть ли команда (и), которая поможет мне сохранить m -файлы, используемые для генерации выходного файла Excel, а также сам файл Excel, в папке, которую я могу назвать и указать метку времени, чтобы я не Я должен сделать это вручную.
В моем идеальном мире я запускал файл мастер-кода, который вызывает 4 или 5 m -файлов других функций, затем все эти m -файлы сохранялись вместе с выводом Excel в папку с именами results_YYYYMMDDTIME. Эта функциональность существует? Я не могу найти это.
1 ответ
Там нет такой встроенной функциональности.
Вы можете построить дерево зависимостей вашей основной функции, используя depfun
с mfilename
,depfun(mfilename())
вернет список всех функций /m-файлов, которые вызываются выполняемым в данный момент m-файлом. Это будет включать все файлы, которые поставляются как встроенные в MATLAB, вы можете удалить их (и записать только версию MATLAB в свой лист Excel).
Как псевдокод:
% get all files:
dependencies = depfun(mfilename());
for all dependencies:
if not a matlab-builtin:
copyfile(dependency, your_folder)
В качестве "долгосрочного" решения вы можете проверить, применимо ли в вашем случае использование системы контроля версий, такой как Subversion, Mercurial (или одна из многих других). В более крупных проектах это предпочтительный способ записи версии исходного кода, используемой для получения определенного результата.