how to test if toolbox exists?
62 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(4 个)
Walter Roberson
2012-5-3
11 个评论
Walter Roberson
2022-8-15
Note that 'Neural_Network_Toolbox' is the old name for Deep Learning Toolbox, and the old name is still used internally for license capabilities.
If you want to find out whether Deep Learning Toolbox is installed, then
ver('nnet')
Again, 'nnet' is an internal name for this purpose, derived from the old marketing name Neural Network Toolbox
If ver shows the toolbox but license test does not show it, then go to the command window and Help -> Licensing -> Update Current Licenses... to make sure the license is up to date (in case features got added to the license after the file was downloaded.)
Image Analyst
2012-5-3
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 个评论
Geoff
2012-5-3
Try this:
v = ver;
has_fsolve = any(strcmp(cellstr(char(v.Name)), 'Optimization Toolbox'));
Or more specifically:
has_fsolve = ~isempty(which('fsolve'));
2 个评论
Geoff
2012-5-4
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
2015-6-29
You can use the existing function in FileExchange called isToolboxAvailable . The usage is as follows:
result = isToolboxAvailable('image processing toolbox','error');
1 个评论
Kjartan Andersen
2016-2-27
Not a good idea to have an external functionality to check for dependencies. What if the user doesn't have this tool?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!