How can I select a system/model without opening it?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(4 个)
Andreas
2016-9-28
This topic is very old, but I'm really interestedin this feature. Is there any new functionality within simulink api?
1 个评论
Sachin Ganjare
2012-10-11
You can use:
set_param([bdroot,'model1']) %Do check the syntax please
Hope it helps!!!
3 个评论
Sachin Ganjare
2012-10-11
编辑:Sachin Ganjare
2012-10-11
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
2012-10-11
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 个评论
Kaustubha Govind
2012-10-11
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
2016-10-14
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Programmatic Model Editing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!