Best practices for small scientific computing projects

7 visualizaciones (últimos 30 días)
K E
K E el 28 de Nov. de 2011
If your group of a few engineers/scientists shares Matlab code and data across projects, what tools or approaches have been helpful for:
  • Sharing code and *.mat files
  • Documenting what a set of code does and what datafiles are used
  • Making code useful to someone besides the author. Organizing code/datafiles so others can easily find/use them, even in the absence of the author.
  • Making it easy for a user to find existing code even if the code name is not known
Here are some low-tech things I do presently...
  • Keep an Excel log of tasks with a link to the directory containing Matlab code. Each task is assigned a task number.
  • The task directory has a consistent name: c:\<myname>\matlab_programs\<general project category>\<my initials><task number><name of task>\ , useful for finding old work.
  • Add a header to every new mfile using InsertHeader.m from the file exchange, which I modified to add the author's name and program creation date to the header.
  • When processing raw data to obtain higher-level results, use a script to document which datasets were using. I keep datasets in folders named c:\<my name>\Projects\<general task category>\<type of dataset>\ , since datasets are reused for different tasks.
  • If the task results in a report with many tables/figures, they are generated by a script using wordreport.m from the file exchange. Easy to trace how the results were calculated and revise them. Appendix at end of report lists the full pathname of the mfiles used, which I copy to the the clipboard with
activeEditor = matlab.desktop.editor.getActive ;
mfileCurrent = activeEditor.Filename ;
clipboard('copy', mfileCurrent);
  • Include the full mfile name at the end of any email containing figures/results. If there's a follow up question, I can easily check my code.
  1 comentario
K E
K E el 26 de En. de 2012
Found a fantastic site on managing scientific projects (data and code), http://software-carpentry.org/4_0/data/mgmt/ .
This is exactly what I was looking for!

Iniciar sesión para comentar.

Respuesta aceptada

the cyclist
the cyclist el 28 de Nov. de 2011
There are many methods, and many software tools, for doing version control in a multi-programmer environment. I do not have a huge breadth of experience, having only used a couple in the past. But I currently use, and like, GitHub: https://github.com/.
  1 comentario
K E
K E el 1 de Dic. de 2011
Thanks, sounds like version control would be a good New Year's resolution!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Search Path en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by