getSignalIDsByName
信号名を使用してSimulink.sdi.Run
オブジェクト内の信号の信号 ID を取得
説明
は、指定された名前sigIDs
= getSignalIDsByName(runObj
,name
)name
をもつSimulink.sdi.Run
オブジェクト内の信号の 1 つ以上の信号 ID を返します。
例
信号IDを信号名で取得
信号 ID が必要である信号の名前を指定することで、Simulink.sdi.Run
オブジェクト内の信号の信号 ID にアクセスできます。信号 ID を使用することで、関数Simulink.sdi.compareSignals
を使用して信号を比較したり、関数Simulink.sdi.getSignal
を使用して信号のSimulink.sdi.Signal
オブジェクトにアクセスしたり、あるいは関数Simulink.sdi.deleteSignal
を使用してシミュレーション データ インスペクターから信号を削除することができます。
この例では、関数getSignalIDsByName
を使って名前またはブロック パスを使用して信号にアクセスする方法、およびバス内に含まれる信号の信号 ID にアクセスする方法を示します。
シミュレーション データ インスペクターでのデータの作成
この例では、パルス カウンターのモデルを使用して、シミュレーション データ インスペクターでシミュレーション データを作成します。モデルにはカウンターの上限と下限を定義する 2 つの入力信号と、カウントするパルスをもつ 1 つの入力パルス信号があります。モデルはバスを使用してBus Counter
サブシステムにデータを送信し、そこから Outport ブロックに送信します。モデルはパルス信号input
と、Outport ブロックに接続されている出力信号OUT
を記録するように設定されています。
モデルをシミュレートし、ログ データが含まれる実行をシミュレーション データ インスペクターで作成します。
out = sim('ex_pulse_counter');
信号 ID へのアクセス
シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、ログ データにアクセスします。関数Simulink.sdi.Run.getLatest
は最後に作成された実行に対応するSimulink.sdi.Run
オブジェクトを返します。Simulink.sdi.Run
オブジェクトのログ信号の信号 ID にアクセスできます。
countRun = Simulink.sdi.Run.getLatest;
関数getSignalIDsByName
を使用して、input
信号の信号 ID にアクセスします。
inSigID = getSignalIDsByName(countRun,的输入ut');
より複雑なモデルでは、複数の信号に同じ名前が付けられている場合があります。この場合、関数getSignalIDsByName
で信号名のみを使用することで、その名前を使用するモデル内のすべてのログ信号の信号 ID の配列になります。結果の重複を回避するために、プロック パスと信号名を一緒に指定できます。ブロック パスの要素を区切るにはスラッシュの代わりにドットを使用します。たとえば、input
信号の信号 ID にアクセスするには、名前を'ex_pulse_counter.Pulse Generator.input'
と指定することもできます。
inSigID = getSignalIDsByName(countRun,'ex_pulse_counter.Pulse Generator.input');
合成信号内の信号の信号 ID へのアクセス
ex_pulse_counter
モデルに記録された出力はバス信号です。一番上のバス信号OUT
、入れ子にされたバスLIMITBUS
、バス内の個々の信号 (output
、upper_limit
、およびlower_limit
) に対応する信号 ID にアクセスできます。
一番上のバスの信号 ID にアクセスするには、信号名OUT
を指定します。
OUTSigID = getSignalIDsByName(countRun,'OUT');
入れ子にされたバスの信号 ID にアクセスするには、バス階層内の信号へのパスを指定します。
LIMITBUSSigID = getSignalIDsByName(countRun,'OUT.LIMITBUS');
いずれかの個別の信号の信号 ID にアクセスするには、バス階層内の信号へのパスを指定します。信号名のみを使用して信号にアクセスすることはできません。Signal
オブジェクトのName
プロパティにはバス階層が含まれます。
upper_limitSigID = getSignalIDsByName(countRun,'OUT.LIMITBUS.upper_limit'); upper_limitSig = Simulink.sdi.getSignal(upper_limitSigID); upper_limitSig.Name
ans = 'OUT.LIMITBUS.upper_limit'
入力引数
runObj
—アクセスする必要がある ID をもつ信号が含まれる実行
Simulink.sdi.Run
オブジェクト
アクセスする必要がある信号 ID をもつ信号が含まれる実行。Simulink.sdi.Run
オブジェクトとして指定します。
name
—アクセスする必要があるIDをもつ信号の名前
文字ベクトル|string
アクセスする必要がある信号 ID をもつ信号の名前。文字ベクトルまたは string として指定します。
モデルは、複数の信号に対して同じ信号名を使用できます。この場合、特定の信号の信号 ID にアクセスするときは、信号を生成するブロックのブロック パスをname
引数に含めることができます。たとえば、name
を'slexAircraftExample.Pilot.Stick'
として指定して、slexAircraftExample
モデルの飞行员
ブロックの出力であるStick
という名前の信号の信号 ID にアクセスします。
合成信号内の信号にアクセスするには、合成信号の階層構造を通じて信号へのパスを指定します。たとえば、name
を'COUNTERBUS.LIMITBUS.lower_limit'
として指定して、バスCOUNTERBUS
に入れ子にされているバスLIMITBUS
内のlower_limit
信号の信号 ID にアクセスします。
データ型:char
|string
出力引数
sigIDs
— 指定された名前をもつ信号の信号 ID
スカラー | 配列
指定された名前をもつ信号の 1 つ以上の信号 ID。スカラーまたは配列として返されます。
バージョン履歴
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)