L'un des inconvénients de la ver
est qu'elle ne vous dit que ce qui est installé et non pas ce qui a un licence disponible . Il est possible d'avoir une boîte à outils installée et aucune licence pour l'utiliser (ou toutes les licences disponibles pourraient être vérifiées par d'autres utilisateurs). Un meilleur choix est le license
qui (comme vous l'avez souligné) nécessite une fonction unique "chaîne de caractères" pour chaque boîte à outils.
Voici une ancienne liste de chaînes de caractéristiques pour diverses boîtes à outils, tirée d'un site aujourd'hui disparu. fil de discussion de newsgroup (le lien est maintenant mort) :
featureStr = {'Aerospace_Blockset'; ...
'Aerospace_Toolbox'; ...
'Bioinformatics_Toolbox'; ...
'Communication_Blocks'; ...
'Communication_Toolbox'; ...
'Compiler'; ...
'Control_Toolbox'; ...
'Curve_Fitting_Toolbox'; ...
'Data_Acq_Toolbox'; ...
'Database_Toolbox'; ...
'Datafeed_Toolbox'; ...
'Dial_and_Gauge_Blocks'; ...
'Distrib_Computing_Toolbox'; ...
'Econometrics_Toolbox'; ...
'EDA_Simulator_Link_DS'; ...
'Embedded_Target_c166'; ...
'Embedded_Target_c2000'; ...
'Embedded_Target_c6000'; ...
'Embedded_Target_MPC555'; ...
'Excel_Link'; ...
'Filter_Design_HDL_Coder'; ...
'Filter_Design_Toolbox'; ...
'Fin_Derivatives_Toolbox'; ...
'Financial_Toolbox'; ...
'Fixed_Income_Toolbox'; ...
'Fixed_Point_Toolbox'; ...
'Fixed-Point_Blocks'; ...
'Fuzzy_Toolbox'; ...
'GADS_Toolbox'; ...
'IDE_Link_MU'; ...
'Identification_Toolbox'; ...
'Image_Acquisition_Toolbox'; ...
'Image_Toolbox'; ...
'Instr_Control_Toolbox'; ...
'Link_for_Incisive'; ...
'Link_for_ModelSim'; ...
'Link_for_Tasking'; ...
'Link_for_VisualDSP'; ...
'MAP_Toolbox'; ...
'MATLAB'; ...
'MATLAB_Builder_for_dot_Net'; ...
'MATLAB_Builder_for_Java'; ...
'MATLAB_Distrib_Comp_Engine'; ...
'MATLAB_Excel_Builder'; ...
'MATLAB_Link_for_CCS'; ...
'MATLAB_Report_Gen'; ...
'MBC_Toolbox'; ...
'MPC_Toolbox'; ...
'NCD_Toolbox'; ...
'Neural_Network_Toolbox'; ...
'OPC_Toolbox'; ...
'Optimization_Toolbox'; ...
'PDE_Toolbox'; ...
'Power_System_Blocks'; ...
'Real-Time_Win_Target'; ...
'Real-Time_Workshop'; ...
'RF_Blockset'; ...
'RF_Toolbox'; ...
'Robust_Toolbox'; ...
'RTW_Embedded_Coder'; ...
'Signal_Blocks'; ...
'Signal_Toolbox'; ...
'SimBiology'; ...
'SimDriveline'; ...
'SimElectronics'; ...
'SimEvents'; ...
'SimHydraulics'; ...
'SimMechanics'; ...
'Simscape'; ...
'SIMULINK'; ...
'Simulink_Control_Design'; ...
'Simulink_Design_Verifier'; ...
'Simulink_HDL_Coder'; ...
'Simulink_Param_Estimation'; ...
'SIMULINK_Report_Gen'; ...
'SL_Verification_Validation'; ...
'Spline_Toolbox'; ...
'Stateflow'; ...
'Stateflow_Coder'; ...
'Statistics_Toolbox'; ...
'Symbolic_Toolbox'; ...
'SystemTest'; ...
'Video_and_Image_Blockset'; ...
'Virtual_Reality_Toolbox'; ...
'Wavelet_Toolbox'; ...
'XPC_Embedded_Option'; ...
'XPC_Target'};
Cette liste couvre les plus courantes, mais n'est pas exhaustive et n'inclut pas les chaînes de caractéristiques des boîtes à outils les plus récentes. Il ne semble pas y avoir de liste facilement disponible des chaînes de caractéristiques actuelles pour toutes les boîtes à outils MathWorks. Je pense que vous pouvez les trouver sur les lignes "INCREMENT" dans un fichier de licence, ou ( comme le mentionne vlee dans un commentaire ), vous pouvez appeler une fonction à partir d'une boîte à outils donnée, puis utiliser la fonction license('inuse')
pour obtenir la chaîne de caractéristiques à partir de la liste affichée des boîtes à outils actuellement utilisées. Cependant, les deux options ci-dessus nécessitent une licence déjà disponible.
En utilisant la liste des chaînes de caractères ci-dessus et la fonction license
vous pouvez vérifier quelles boîtes à outils vous avez une licence d'utilisation. Le code suivant vérifie les licences pour l'ensemble de la liste ci-dessus :
index = cellfun(@(f) license('test', f), featureStr);
availableFeatures = featureStr(logical(index));
Cependant, ce qui précède ne fait que confirmer que la licence existe non pas que ce soit possible vérifié . La licence peut avoir expiré ou toutes les licences disponibles peuvent avoir été vérifiées par d'autres utilisateurs. Pour être absolument certain de pouvoir utiliser les boîtes à outils disponibles, vous pouvez essayer de récupérer une licence pour celles dont vous avez besoin et vérifier si vous avez réussi. Le code suivant tente d'extraire une licence pour toutes les boîtes à outils disponibles trouvées ci-dessus :
index = cellfun(@(f) license('checkout', f), availableFeatures);
checkedOutFeatures = availableFeatures(logical(index));
UN MOT D'AVERTISSEMENT .. :
Comme le mentionne Jason S dans un commentaire ci-dessous il n'est pas judicieux de vérifier les licences au hasard, car elles ne seront pas libérées avant la fermeture de MATLAB. Vous ne devez vérifier qu'une licence dont vous savez que vous aurez besoin pour une application donnée ! Normalement, les licences ne sont pas vérifiées tant que vous n'essayez pas d'utiliser une fonction d'une boîte à outils donnée. Par exemple :
>> license('inuse')
matlab
>> gaussFilter = fspecial('gaussian'); % An Image Processing Toolbox function
>> license('inuse')
image_toolbox
matlab