запишете файла с код на MATLAB заедно с резултатите в една папка?

Обработвам набор от данни и се сблъсквам с проблем - въпреки че xls записвам всички съответни изходни променливи в голям файл на Excel, който има клеймо за време, не запазвам кода, който всъщност е генерирал този резултат. Така че, ако се опитам да пресъздам определен набор от резултати, не мога да го направя, без да разчитам на паметта (което очевидно не е добър план). Бих искал да знам дали има команда(и), която ще ми помогне да запазя m-файловете, използвани за генериране на изходния файл на Excel, както и самия файл на Excel, в папка, която мога да наименувам и да поставя време, така че да не не трябва да правите това ръчно.

В моя перфектен свят бих стартирал файла с главния код, който извиква 4 или 5 други функционални m-файла, след което всички тези m-файлове ще бъдат запазени заедно с изхода на Excel в папка с имена results_YYYYMMDDTIME. Съществува ли тази функционалност? Не мога да го намеря.


person dustynrobots    schedule 23.09.2013    source източник


Отговори (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 (или една от много други) би било приложимо във вашия случай. В по-големи проекти това е предпочитаният начин за записване на версията на изходния код, използван за получаване на определен резултат.

person sebastian    schedule 23.09.2013
comment
Добре, благодаря, страхувах се, че това е отговорът, но добре е да потвърдя. Depfun(mfilename()) обаче е полезен. - person dustynrobots; 24.09.2013