このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
getSignalIDsByName
信号名を使用して Simulink.sdi.Run
オブジェクト内の信号の信号 ID を取得
説明
は、指定された名前 sigIDs
= getSignalIDsByName(runObj
,name
)name
をもつ Simulink.sdi.Run
オブジェクト内の信号の 1 つ以上の信号 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,'input');
より複雑なモデルでは、複数の信号に同じ名前が付けられている場合があります。この場合、関数 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'
入力引数
アクセスする必要がある信号 ID をもつ信号が含まれる実行。Simulink.sdi.Run
オブジェクトとして指定します。
アクセスする必要がある信号 ID をもつ信号の名前。文字ベクトルまたは string として指定します。
モデルは、複数の信号に対して同じ信号名を使用できます。この場合、特定の信号の信号 ID にアクセスするときは、信号を生成するブロックのブロック パスを name
引数に含めることができます。たとえば、name
を 'slexAircraftExample.Pilot.Stick'
として指定して、slexAircraftExample
モデルの Pilot
ブロックの出力である Stick
という名前の信号の信号 ID にアクセスします。
合成信号内の信号にアクセスするには、合成信号の階層構造を通じて信号へのパスを指定します。たとえば、name
を 'COUNTERBUS.LIMITBUS.lower_limit'
として指定して、バス COUNTERBUS
に入れ子にされているバス LIMITBUS
内の lower_limit
信号の信号 ID にアクセスします。
データ型: char
| string
出力引数
指定された名前をもつ信号の 1 つ以上の信号 ID。スカラーまたは配列として返されます。
バージョン履歴
R2020a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)