How can I select a system/model without opening it?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Is there a way to select a model so that bdroot points to it without opening it?
load_system('model1');
disp(bdroot); % bdroot is now 'model1')
load_system('model2');
disp(bdroot); % bdroot is now 'model2')
% ****** 1. Code that require bdroot to be 'model2'
% ****** and 'model1' to be loaded.
% ****** 2. code that require bdroot to be 'model1'.
How can number 2 be achieved without opening model1? Another load_system('model1') doesn't do the trick. I'm looking for a select_system() I guess.
[EDIT: A better example. Please paste into an m-file called solveme.m and call from MATLAB.]
function solveme()
% bdclose all % Uncomment if you have no unsaved work
load_system('vdp');
load_system('simulink');
% Insert solution here!
% -- open_system or other commands that makes the model visible are not
% permitted
% Extra credits if close_system and bdclose are not used
disp(fcnt)
function ret = fcnt()
if strcmp(bdroot, 'vdp')
ret = 'Sucess!';
else
ret = 'Failure!';
end
0 comentarios
Respuestas (4)
Andreas
el 28 de Sept. de 2016
This topic is very old, but I'm really interestedin this feature. Is there any new functionality within simulink api?
1 comentario
Sachin Ganjare
el 11 de Oct. de 2012
You can use:
set_param([bdroot,'model1']) %Do check the syntax please
Hope it helps!!!
3 comentarios
Sachin Ganjare
el 11 de Oct. de 2012
Editada: Sachin Ganjare
el 11 de Oct. de 2012
My bad, I did not understand the question correctly.
Before doing load_system for model1 you should close the open system i.e model2, otherwise bdroot will not point to recently loaded model.
load_system('model1');
disp(bdroot); % bdroot is now 'model1')
load_system('model2');
close_system('model1');
disp(bdroot); % bdroot is now 'model2')
Kaustubha Govind
el 11 de Oct. de 2012
I can't think of a way to switch bdroot to another model, other than Sachin's idea of closing the current bdroot model(model2 in your example). Can your code be re-written to accept the model name as an argument instead of using bdroot? In general, MATLAB functions that use bdroot, gcs and gcb tend to be too presumptive.
2 comentarios
Kaustubha Govind
el 11 de Oct. de 2012
Johannes: I agree that something like select_system would be nice - could you please submit an enhancement request via MathWorks Tech Support to consider adding such an option for a future release?
Matthew Manthey
el 14 de Oct. de 2016
This is somewhat slow in my opinion, but I believe it serves the purpose
function select_system( obj )
% Ignore the return value
RTW.getBuildDir(obj);
end
0 comentarios
Ver también
Categorías
Más información sobre Programmatic Model Editing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!