2012-09-12 4 views
1

Simulink 모델에 대해 몇 가지 작업을 수행하는 .m 파일이 있는데 현재 사용중인 모델이 전체 모델 또는 하위 시스템인지 확인하고 싶습니다. 이것을 확인하는 특정 구문이나 함수가 있습니까? Simulink 시스템에 따라 동작을 다르게 수행 할 수 있어야합니다.현재 Simulink 시스템 모델 또는 서브 시스템이 MATLAB에 있습니까

+0

: 것 방법은, 모델의 이름은 다음 VDP, 말한다. – 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 교체 [중 하나 open_systemload_system 또는 사용하기 전에 부하를 만들]

bdIsLoaded ('VDP') 나는 그것이 시뮬링크 모델에 관하여는 명확하게하는 질문을 편집하고,`simulink` 태그를 추가