0

Simulinkで問題のあるブロックのインポートハンドルとアウトポートハンドルをどのように列挙しますか?これまでのところ、「sfunc」がすでにブロックハンドルに設定されている次のものを使用してみました。

inports = get_param(sfunc, 'Inport')
outports = get_param(sfunc, 'Outport')

これは、サイズが指定されたポートの数と等しい2次元配列を返します。しかし、私が以下を実行すると('inports'または'outports'のいずれかで)

get_param(inports, 'Handle')

配列はベクトルでなければならないと述べています。私はこれを正しい方法で行っていますか?もしそうなら、どうすれば配列をベクトルに変換できますか?基本的に私がやろうとしているのは、ブロックに接続されている回線のハンドルを取得して、現在のブロックを新しいブロックに置き換えた後でそれらをリンクできるようにすることです。これに関する助けをいただければ幸いです。

4

1 に答える 1

2

パラメータPortHandlesを使用してみてください。これにより、Inport、Outport、EnablePortなどのフィールドを持つ構造が得られます。フィールドInportおよびOutportは、ハンドルの配列、ポート数のサイズになります。

>> ph = get_param(sfunc, 'PortHandles')
>> inportHandles = ph.Inport;
% Get the 2nd input port handle
>> input_2 = inportHandles(2);
>> line = get_param(input_2, 'Line');
于 2011-04-08T00:51:47.890 に答える