how to test if toolbox exists?
135 views (last 30 days)
Show older comments
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
Answers (4)
Walter Roberson
on 3 May 2012
7 Comments
Image Analyst
on 9 Aug 2022 at 19:05
When you asked "what should I type for deep learning toolbox, please?" I assumed you wanted a logical variable that gave true or false for whether or not you had the Deep Learning Toolbox. So that's why I gave you
hasLicenseForToolbox = license('test', 'Neural_Network_Toolbox'); % Check for Deep Learning Toolbox.
It does exactly that, which is what I thought you asked. Not sure why you said it didn't resolve your problem unless "what should I type for deep learning toolbox, please?" means something different than "what can I type to determine if I have a license for the Deep Learning Toolbox?"
@Reza Ahmadzadeh's code depends on a third party function, not a simple, built-in, one-line function call like I gave you. There is no need to use Reza's code (like the comment after it said).
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
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
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.
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
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?
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!