MATLAB Answers

how to test if toolbox exists?

174 views (last 30 days)
C Lira
C Lira on 3 May 2012
Commented: Walter Roberson on 14 Mar 2016
I am writings some code that I wish to distribute open source. Within my code, I'd like to check if the end-users have fsolve in their installation and if not, use fzero. I'd rather the end-user not get ugly messages about functions not existing, and beginners will be so confused about what to do to fix the error, or they will hate Matlab. Is there a way that this can be implemented easily?

  0 Comments

Sign in to comment.

Answers (4)

Walter Roberson
Walter Roberson on 3 May 2012
For example,
license('test', 'image_toolbox')

  2 Comments

Mohammad Nazrin Jumali
Mohammad Nazrin Jumali on 14 Mar 2016
it says '1', what does it mean?
Walter Roberson
Walter Roberson on 14 Mar 2016
It means the license does exist.

Sign in to comment.


Geoff
Geoff on 3 May 2012
Try this:
v = ver;
has_fsolve = any(strcmp(cellstr(char(v.Name)), 'Optimization Toolbox'));
Or more specifically:
has_fsolve = ~isempty(which('fsolve'));

  2 Comments

Jan
Jan on 3 May 2012
{v.Name} is nicer than "cellstr(char(v.Name))".
Geoff
Geoff on 4 May 2012
Oh, thanks =) I get a bit baffled sometimes when things look like the right type but return multiple answers. That's a much nicer syntax.

Sign in to comment.


Image Analyst
Image Analyst on 3 May 2012
Here's the code I use:
% Check that user has the Image Processing Toolbox installed.
hasIPT = license('test', 'image_toolbox');
if ~hasIPT
% User does not have the toolbox installed.
message = sprintf('Sorry, but you do not seem to have the Image Processing Toolbox.\nDo you want to try to continue anyway?');
reply = questdlg(message, 'Toolbox missing', 'Yes', 'No', 'Yes');
if strcmpi(reply, 'No')
% User said No, so exit.
return;
end
end
You'll need to adapt it for any toolboxes that you want to check.

  0 Comments

Sign in to comment.


Reza Ahmadzadeh
Reza Ahmadzadeh on 29 Jun 2015
You can use the existing function in FileExchange called isToolboxAvailable . The usage is as follows:
result = isToolboxAvailable('image processing toolbox','error');

  1 Comment

Kjartan Andersen
Kjartan Andersen on 27 Feb 2016
Not a good idea to have an external functionality to check for dependencies. What if the user doesn't have this tool?

Sign in to comment.

Tags

Products