Check if Simulink is started (for faster use of find_system)

4 visualizaciones (últimos 30 días)
dbmn
dbmn el 6 de Sept. de 2016
Respondida: Malcolm Wood el 10 de Jun. de 2021
I have a function that calls
find_system('SearchDepth',0);
to check if there are any Simulink elements. As expected, if no models are open, it returns an empty cell array.
BUT Matlab spends ages (about 5 seconds) while "Starting Simulink...". I could omit the check if I knew that Simulink was not started and save the 5 Seconds.
  • Is there a way to programmatically check if Simulink is already started?

Respuesta aceptada

dbmn
dbmn el 7 de Sept. de 2016
I found a workaround that I wanted to share
% check if Simulink was started in the past
current_licenses = license('inuse');
if strcmp('simulink', current_licenses)
% code that calls findsystem
end
It is not the nicest way to check if simulink has been started in the past by checking the currently used licenses on the machine - but it works most of the time.
Attention: by doing this you will not catch any timeouts that might occur when you are using a server based license.

Más respuestas (1)

Malcolm Wood
Malcolm Wood el 10 de Jun. de 2021
Since R2020b there's a function called isSimulinkStarted which tells you whether the "Starting Simulink..." process has already run - which, as you've seen, isn't quite the same as whether a license has been checked out.

Categorías

Más información sobre Naming Conventions en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by