¿Cómo se verificarían las cajas de herramientas MATLAB instaladas en un script/función? (¡Comprobar las versiones de la caja de herramientas también sería bueno!) Esto podría proporcionar un mensaje de error rápido y útil cuando alguien intenta ejecutar una secuencia de comandos sin una caja de herramientas requerida.¿Cómo se verificarían las cajas de herramientas MATLAB instaladas en un script/función?
Una solución rápida, aunque aproximada, que viene a la mente es analizar el resultado de texto del comando ver
. Me pregunto si hay una mejor manera.
un poco de búsqueda rápida reveló ver product
o la función license
con el argumento 'test'
puede ser útil, pero no pudo encontrar un mapeo de los nombres de la caja de herramientas (es decir. 'Image Processing Toolbox'
) a los nombres de productos (es decir. 'control'
) o nombres de características (es decir. image_toolbox
).
Por otra parte, cuando me encontré license('inuse')
, sólo he recibido la siguiente:
>> a = license('inuse'); a a = feature: 'matlab' user: <username>
me esperaba para una lista de las muchas cajas de herramientas que tengo acceso.
Esta pregunta fue provocada al intentar probar el script de compañeros de trabajo con anticipación. Desafortunadamente, requirió Image Processing Toolbox, que actualmente carezco. Un mensaje de error útil habría ahorrado tiempo tratando de diagnosticar el problema. Ahora esperaré una versión compilada antes de probarla.
Supongo que el mejor método sería usar tanto el comando ver como el de licencia. De esta forma, puede informar al usuario si carecen por completo de una caja de herramientas, o si simplemente necesita esperar/gritar hasta que la licencia esté disponible. – Jonas
Tenga en cuenta que retirar una licencia solo para ver si puede sacar una licencia es algo ** malo ** porque en MATLAB la licencia no se podrá liberar hasta que cierre MATLAB por completo. Esto no "funciona bien" con licencias compartidas (especialmente teniendo en cuenta los bajos precios de Mathworks para cajas de herramientas de licencia de red) –
(sin embargo, si necesita usar esa caja de herramientas de todos modos en la función, debería estar bien) –