How to organize a project?

6 views (last 30 days)
Roy Goodman
Roy Goodman on 31 Aug 2020
Edited: Mario Malic on 1 Sep 2020
This is more a general software engineering question than a MATLAB question, but it's about a MATLAB project, so here seems the best place for me to ask.
I have some MATLAB software that I've been working on for a while. The code consists of several parts, and I'd like to set it up as a MATLAB Project (in the formal sense that comes from creating a .prj file). My question is about how to organize the various pieces of code making up the project as I get set up to post it to GitHub, invite a collaborator, and make it available for download among a small community of researchers who would find it useful.
There are three main parts to the code
  • A class definition with lots of methods. This is stored in a directory beginning with an '@' and all the methods are in separate m-files in that directory.
  • Applications of the class definition. Some of these are basically demos and some are examples where I've used this code in published papers.
  • Support codes for dealing with managing the output of computation. These are things that I wrote for my own use over the years and which I naturally used when I was writing the applications. These would ideally be placed in the user's path at startup.
Putting this all into a Project requires them to all be in one directory, which is not how I would do it were it up to me.
Roy Goodman
Roy Goodman on 1 Sep 2020
I really like the dependency analysis tools that are part of the project infrastructure.

Sign in to comment.

Accepted Answer

Mario Malic
Mario Malic on 31 Aug 2020
Edited: Mario Malic on 1 Sep 2020
Do you want to put project parts in \projectpath\folder1\filesforpart1.m, \projectpath\folder2\filesforpart2.m or would you like to have something like \projectpath\part1\files.m and \otherpath\part2\files.m?
If you thought of the first suggestion then you are able to add these folders to project path and you can commit them to GitHub.
If you thought of the second one, then maybe "Submodules" option could be what you're looking for, but this involves multiple repositories.

More Answers (0)


Find more on Environment and Settings in Help Center and File Exchange




Community Treasure Hunt

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

Start Hunting!

Translated by