What makes a Toolbox a Toolbox, and how is it recognized by Matlab?

17 views (last 30 days)
By typing ver I can see which toolboxes I have:
MATLAB Version 9.3 (R2017b)
Simulink Version 9.0 (R2017b)
Computer Vision System Toolbox Version 8.0 (R2017b)
Control System Toolbox Version 10.3 (R2017b)
Curve Fitting Toolbox Version 3.5.6 (R2017b)
DSP System Toolbox Version 9.5 (R2017b)
GSW Oceanographic Toolbox Version 3.05.5 (R2012a)
Image Processing Toolbox Version 10.1 (R2017b)
MATLAB Report Generator Version 5.3 (R2017b)
Mapping Toolbox Version 4.5.1 (R2017b)
Optimization Toolbox Version 8.0 (R2017b)
Signal Processing Toolbox Version 7.5 (R2017b)
Statistics and Machine Learning Toolbox Version 11.2 (R2017b)
TopoToolbox Version 2.0 (R2012a)
Wavelet Toolbox Version 4.19 (R2017b)
The list above includes official MathWorks toolboxes and user-generated toolboxes (GSW Oceanographic Toolbox and TopoToolbox). How did GSW and TopoToolbox get on this list?
I have created and installed my own Climate Toolbox as a .prj & .mltbx pair, but my Climate Toolbox does not appear on the list. My toolbox does appear if I type
toolboxes = matlab.addons.toolbox.installedToolboxes
but other toolboxes I've installed do not appear using this command. If I go to the Add-Ons manager, I see my Climate Toolbox listed along with official Mathworks Toolboxes, and curiously also Scott Lowe's MATLAB Schemer, but is identified as a "Collection" rather than a toolbox.
Can anyone clearly define the taxonomy Toolboxes, Collections, Add-Ons, Apps, and Packages? Why do some toolboxes only show up with ver, while others only show up with matlab.addons.toolbox.installedToolboxes?

Accepted Answer

Stephen23
Stephen23 on 10 Aug 2018
Edited: Stephen23 on 10 Aug 2018
@Chad Greene: As far as I can tell:
  • Apps are based around one graphical user interface, that is called from the MATLAB ribbon itself. These are packed into one .mlappinstall installation file. They seem to be targeted particularly at users of GUIDE and the App Designer.
  • Toolboxes are just a collection of files and folders, just like you would create yourself for some more complex projects, which are all packed into one .mltbx installation file. This means they can contain whatever files and structure the writer wanted, with few restrictions.
  • Hardware Support Packages are a collection of files and folders that allow control or interfacing to some specific hardware, e.g. cameras, webcams, Lego Mindstorm, Arduino, etc. These are packed into one .mlpkginstall installation file. Do not confuse this with "package" (see below)!
  • Add-On is an umbrella term that includes all of the above: Apps, Toolboxes, and Hardware Support Packages. The term seems to be used because all Apps, Toolboxes, etc, can be obtained via the "Add-Ons Explorer", which is simpler that saying the "Apps, Toolbox, and Hardware Support Package Explorer".
  • Collections do not seem to have any useful definition in the current documentation, nor did my online search give a meaningful definition.
  • Packages are a collection of files and folders, specifically aimed at Object Oriented Programming. These have the important feature that function and class names must be unique only within the package, so this means that two packages could use the same function/class names, without conflict or shadowing.
"Why do some toolboxes only show up with ver, while others..."
I have no idea why some toolboxes are listed and other ones are not: you should write directly to TMW and ask them.
  1 Comment
Chad Greene
Chad Greene on 12 Aug 2018
Thanks Stephen for your characteristic clarity and comprehensiveness! I'm bookmarking this page, because these different terms are not very intuitive and I haven't seen it so clearly laid out anywhere else.

Sign in to comment.

More Answers (2)

Walter Roberson
Walter Roberson on 5 Aug 2018
Look for info.xml and in particular for
<type>toolbox</type>
  1 Comment
Chad Greene
Chad Greene on 6 Aug 2018
I thought that might be it, but I also have another toolbox I started working on, it's got an info.xml, and it also has the type>toolbox</type line, but that toolbox doesn't show up via ver, or with the matlab.addons.toolbox.installedToolboxes, or in the Add-Ons Explorer. But my question is less about those details, and more fundamental--what is a toolbox? Paid toolboxes from Mathworks are called Toolboxes, but they are different from the toolboxes that users can create. And it seems like sometimes user-generated Toolboxes are recognized by Matlab in much the same way that Mathworks-generated Toolboxes are recognized, but sometimes not. What makes that distinction?
When we've straightened out the definition of a Toolbox, then I'd like to understand what a Collection is. And what's a Package? What is an Add-On? What is an App? It's hard to develop any of these things without really understanding what they are, how they will be recognized by Matlab, or how users will interact with them.

Sign in to comment.


Wolfgang Schwanghart
Wolfgang Schwanghart on 10 Aug 2018
Hi Chad, the trick is to have a Contents.m-file in the main folder of your toolbox. In TopoToolbox, the file starts with
TopoToolbox
Version 2.3 pre 24-Apr-2018
And this information is then seen when you call ver.
  1 Comment
Chad Greene
Chad Greene on 12 Aug 2018
Hey Wolfgang, thanks for weighing in! I thought the Contents.m file might be it, but I created one with the Report Generator, and no results for my toolbox using ver, but yours still shows up. I have no actual need for my toolbox to show up with ver, but I figured I should try to understand how these different types of toolboxes are recognized, and what the different distinctions mean.

Sign in to comment.

Categories

Find more on Oceanography and Hydrology 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!