Сохранить файл кода 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 (или одна из многих других). В более крупных проектах это предпочтительный способ записи версии исходного кода, используемой для получения определенного результата.

Другие вопросы по тегам