2017-02-01 8 views
1

MATLAB functionブロックをSimulinkモデルで見つける方法を知りたいと思います。 は、私がMATLAB functionブロックがたくさんある知っているモデルでは、私は、次のコマンドを試してみました:SimulinkモデルですべてのMATLAB関数ブロックを見つける方法

find_system(myModel,'LookUnderMasks','on','FollowLinks','on','BlockType','MATLAB Function') 

しかし、このコマンドは空のセル配列を返します。私が次のようなことを試してみたら、多くの結果が得られています:

find_system(myModel,'LookUnderMasks','on','FollowLinks','on','BlockType','Gain') 

「MATLAB Function」は実際のBlockTypeですか、使用する別の用語がありますか?あなたは以下を使用して、検索の深さを定義する必要があります

答えて

1

次のコードを使用すると、すべてのMATLAB関数ブロックを見つけることができます。

S = sfroot(); 

% Get block handles 
B = find(sfroot, '-isa','Stateflow.EMChart'); 

これは開いているすべてのモデルを検索し、Stateflow.EMChart型のオブジェクトのリストを返します。これらのオブジェクトのPathプロパティを見て、必要なモデルにリストを縮小することができます。

+0

あなたのコードを試しましたが、80x1のStateflow.EMChartオブジェクトが取得されています。私はStateflowを持っていないので、これらの80要素にアクセスする方法や表示する方法がわかりません。また、なぜStateflowを使用してMATLAB Functionブロックタイプを検索するのですか? –

+1

MATLABファンクションブロックは特殊ブロックで、他のテクノロジの上に構築されています。任意のMATLAB配列のように80x1配列にインデックスを付けることができます。 B(1)を表示しようとすると、そのプロパティが表示されます。 – Navan

1

h=find_system(myModel,'SearchDepth',N, 'regexp', 'on', 'FollowLinks','on','Findall','on','LookUnderMasks','all', 'BlockType','Gain'); 

はN、高いN検索がされるブロックに深いを指定します。

これがうまくいかない場合は教えてください。

+0

MATLAB関数は有効な引数ではありません。 – Rami

+0

MATLAB Functionブロックの引数は何ですか? –

関連する問題