2012-09-12 75 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」)