Do these 3 things to increase the reach of your open source MATLAB toolbox
We all develop code for different reasons. However, once we decide to start sharing it with others, we tend to have one thing in common: We'd like as many people as possible to use it; and maybe even contribute.
I believe that there are three things that every MATLAB developer can do in order to attract more users and contributors to their project. The best part? These steps will make your life easier as a developer too.
1. Develop on GitHub
Ideally, you're already using Git for version control. Even if you are not, GitHub is a great place to host your project. You'll instantly have all of the supporting infrastructure of GitHub at your disposal.
Your code is backed up for a start; and not just the current version. Every version you've ever committed to the project will also be there too. You'll also get access to tools like GitHub issues, where users can discuss problems, request features or make suggestions about your code. This helps you manage your project and begin building a community around it.
GitHub is where many developers expect to find open-source code these days and its collaboration model is well known. As the developer, you'll always be in full control of what goes into your project and the pathway for others to engage with you is clear.
MATLAB's integration with Git and GitHub has improved dramatically in recent releases, making it easier than ever to adopt these tools into your workflow.
Bonus tip: Don't forget to create a solid README.md file. Since R2025a, MATLAB has much better support for Markdown, so take advantage of that to clearly explain what your toolbox does and how to use it.
2. Publish to File Exchange (automatically!)
Developers expect to find your code on GitHub but MATLAB users expect to see it on File Exchange. Since 2001, File Exchange has been the place MATLAB users go to in order to look for code to help them solve their problems but it is so much more than a website.
In MATLAB, in the Home->Environment panel, you'll find the add-ons icon. Click on this and you'll get Add-on explorer where you can find and install everything available on File Exchange without ever leaving MATLAB.

The practical upshot is this: Put your code on File Exchange and it's available to MATLAB users from within MATLAB itself; making it much easier for users to discover and install your project. Here I am installing the FSDA toolbox:
You can make the connection between GitHub and File Exchange completely automatic and details on how to do so are available here. When you update on GitHub, File Exchange comes along for the ride with zero additional effort. File exchange can be configured to either always mirror the GitHub repo's default branch or you can set it up to synchronize with GitHub releases.
Every File Exchange entry also gets an 'Open in MATLAB Online' button which allows users to use your toolbox in MATLAB Online. This brings me to my third point:
3. Add 'Open in MATLAB Online' links and buttons
I first discussed this in my article Open science and reusable research with MATLAB Online and GitHub. The idea is simple, you use this webpage to generate a link related to your GitHub repository attached to buttons like this
This will allow users to get going with your toolbox or application without them even needing to install MATLAB. Indeed, without even needing a MATLAB license in many cases; making your project even more usable, open and accessible than ever.
Bonus tip: Consider creating one or more demonstration live scripts, possibly including live controls, to serve as interactive documentation or on-boarding for your project. Ensure that one of your 'Open in MATLAB Online' buttons points to this to give an easy way for prospective users to try out your project or learn about new functionality.
Three examples of MATLAB community toolboxes that work this way
FSDA - Flexible Statistics Data Analysis toolbox
FSDA extends MATLAB for a robust analysis of data sets affected by different sources of heterogeneity and was the subject of my first blog post on a MATLAB community Toolbox,. FSDA ticks all of the three boxes above; alongside it's official website we have
- FSDA on GitHub
- FSDA on File Exchange. 19,500 downloads for FSDA via File Exchange at the time of writing.
- FSDA uses 'Open in MATLAB Online' to great effect. Here, they have a demonstration Live Script that shows all of the new features in their latest release
PIVLab - particle image velocimetry (PIV) tool with GUI
PIVlab is a free and open-source particle image velocimetry (PIV) software and is currently the most frequently cited PIV tool on the market. PIVlab is also the most popular project on File Exchange with over 110,000 downloads via that channel alone. It also employs all three of the techniques discussed in this blog post and has its own official website.
- PIVlab GitHub repository
- PIlVlab on File Exchange. PIVlab was on file exchange early on in its development.
- The PIVlab web browser-based app that uses MATLAB online. Using a link rather than an 'Open in MATLAB Online' button this installs the toolbox and drops you into MATLAB Online ready-to-go.Type PIVlab_GUI to get started.
EEGLAB
Based at UCSD in La Jolla, EEGLAB is a MATLAB Community Toolbox for analyzing electroencephalography (EEG) brain wave data. Its first release dates to 2001, so it's nearly 25 years old. This year it surpassed 25K citations and has a presence on both GitHub and File Exchange along with its own dedicated website.
- EEGLAB on GitHub
- EEGLAB - File Exchange - MATLAB Central. EEGLAB has been on File Exchange proper since 2018 and has amassed over 30,000 downloads via that channel alone.
The EEGLAB team have been ahead of the curve for over two decades and have been piloting some 'Open in MATLAB Online' examples recently.
Further steps
If you like these recommendations and want more, I suggest you take a look at MathWorks' MATLAB Toolbox Best Practices and Ned Gulley's 2023 blog post about them.
Over to you
Do you agree with the three things I've highlighted in this article? if not, what would you suggest instead? Are there any other community toolboxes you would have highlighted that demonstrate the principles discussed here?
评论
要发表评论,请点击 此处 登录到您的 MathWorks 帐户或创建一个新帐户。