MATLAB Answers

Chad Greene
4

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

Asked by Chad Greene
on 5 Aug 2018 at 21:31
Latest activity Commented on by Chad Greene
on 12 Aug 2018 at 20:21

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?

  0 Comments

Sign in to comment.

3 Answers

Answer by Stephen Cobeldick on 10 Aug 2018 at 12:43
Edited by Stephen Cobeldick on 10 Aug 2018 at 13:33
 Accepted Answer

@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

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.


Answer by Walter Roberson
on 5 Aug 2018 at 21:59

Look for info.xml and in particular for

<type>toolbox</type>

  1 Comment

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.


Answer by Wolfgang Schwanghart on 10 Aug 2018 at 11:31

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

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.