1

Simulink モデルでいくつかのアクションを実行する .m ファイルがあり、現在使用されているモデルがモデル全体であるかサブシステムであるかを確認したいと考えています。これを確認するための特定の構文または関数はありますか? Simulink システムに応じて異なるアクションを実行できるようにする必要があります。

4

4 に答える 4

1

いつでもbdrootを使用して最上位システムの名前を取得し、文字列比較を使用してサブシステムがあるかどうかを確認できます。

sysname = 'f14/Actuator Model';
istoplevel = strcmp(bdroot(sysname), sysname);
于 2012-09-13T03:46:00.180 に答える
1
isEntireModel = isequal( get_param( gcs, 'Type' ), 'block_diagram' );
于 2012-09-12T15:32:46.083 に答える
0

モデルを開いた後、これを試すことができますか、またはシステム名に置き換えてください[またはgcsで使用する前に必ずロードしてください]:load_systemopen_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
于 2012-09-16T16:34:44.643 に答える
0

簡単な方法は、モデル名が vdp だとすると、次のようになります。

bdIsLoaded('vdp')

于 2014-12-08T18:46:26.083 に答える