Simulink モデルの[信号の次元​]をコマンドで取得す​るには、どのようにす​ればよいですか?

15 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2009 年 6 月 29 日
Simulink モデルのメニューにある、[書式]->[ポート/信号の表示]->[信号の次元]をコマンドで取得するには、どのようにすればよいですか?

採用された回答

MathWorks Support Team
MathWorks Support Team 2009 年 6 月 29 日
get_param 関数を利用し、信号の発生源のポートにある "CompiledPortDimensions" プロパティから取得することが可能です。
このプロパティは、モデルがシミュレーション中、もしくはコンパイル中でなければ、正しい値を取得できないため、取得前には、コマンドでモデルをコンパイル中の状態にします。また、取得後は、コンパイル状態を解除する必要があります。
(例)信号(信号名:sig) から次元を取得する例
サンプルモデル testmodel.mdl(作成バージョン R2006a) は、ページ下部の関連ドキュメントよりダウンロード可能です。
(注意)ファイルのダウンロードはダウンロード対象のリンクを右クリックし、「対象をファイルに保存」を選択して行ってください。
testmodel([],[],[],'compile') % モデルのコンパイル
L = find_system(gcs,'FindAll','on','Type','line','Name','sig'); % 信号検出
q = get_param(L,'SrcPortHandle'); % 信号源のポートのハンドル取得
d = get_param(q,'CompiledPortDimensions') % 信号の次元
testmodel([],[],[],'term') % モデルのコンパイル解除
上記コマンドを実行すると、信号の次元として、
>> d =
2 2 2
が得られますが、1番目の要素は次元、それ以降は信号のサイズを表わします。
この場合、「2次元(配列)で、2×2のサイズ」となります。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange信号 についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!