我有一个.m文件,我在其中使用Simulink模型执行某些操作,我想检查当前使用的模型是整个模型还是子系统。是否有特定的语法或功能来检查这个?我需要能够以不同的方式执行操作,具体取决于Simulink系统。
答案 0 :(得分:1)
isEntireModel = isequal( get_param( gcs, 'Type' ), 'block_diagram' );
答案 1 :(得分:1)
您始终可以使用bdroot获取顶级系统的名称,并使用字符串比较来查看您是否有子系统:
sysname = 'f14/Actuator Model';
istoplevel = strcmp(bdroot(sysname), sysname);
答案 2 :(得分:0)
您可以在打开模型后尝试此操作,或者将gcs
替换为系统名称[确保在使用load_system
或open_system
之前加载它:
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
答案 3 :(得分:0)
更简单的方法是,比如你的模型名称是vdp,然后是:
bdIsLoaded(' VDP&#39)