2012-09-12 42 views
1

我有一个.m文件,我用Simulink模型做了一些操作,我想检查当前使用的模型是整个模型还是子系统。是否有特定的语法或功能来检查?取决于Simulink系统,我需要能够执行不同的操作。当前在MATLAB中的Simulink系统模型或子系统

+0

我编辑你的问题,以使其更清晰这是关于Simulink模型,并添加了'simulink'标签。 – nrz

回答

1

您可以随时使用bdroot获得顶级系统和使用字符串比较的名字,看看如果你有一个子系统或不:

sysname = 'f14/Actuator Model'; 
istoplevel = strcmp(bdroot(sysname), sysname); 
1
isEntireModel = isequal(get_param(gcs, 'Type'), 'block_diagram'); 
+0

我可以在哪里给出当前系统的名称,以了解它是模型还是子系统 – lola

+0

用您的系统名称替换对'gcs'函数的调用。 – Edric

0

你可以试试这个,打开后你

h=find_system(gcs,'FindAll',1,'SearchDepth',1,'BlockType','SubSystem'); 
if isempty(h) 
    disp('Has Subsystems'); 
else 
    disp('No Subsystems'); 
end 
h=find_system(gcs,'FindAll',1,'SearchDepth',1,'BlockType','ModelReference'); 
if isempty(h) 
    disp('Has Models'); 
else 
    disp('No Models'); 
end 
0

简单:模型,或与系统名称替换gcs [使用的是含有load_systemopen_system之前确保加载]办法是,说你的型号名称是VDP,则:

bdIsLoaded(“VDP”)