getSignalsByName
信号名を使用して Simulink.sdi.Run オブジェクトの信号にアクセス
説明
は、sigs = getSignalsByName(runObj,name)name で指定された名前をもつ 1 つ以上の Simulink.sdi.Signal オブジェクトを返します。
例
シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、ログ データまたはインポートされたデータに対応する Simulink.sdi.Signal オブジェクトにアクセスできます。関数 getSignalsByName を使用して、Simulink.sdi.Run オブジェクトから取得する信号の名前を指定できます。個々の信号および合成信号のデータにアクセスできます。
シミュレーション データ インスペクターでのデータの作成
この例では、パルス カウンターのモデルを使用して、シミュレーション データ インスペクターでシミュレーション データを作成します。モデルにはカウンターの上限と下限を定義する 2 つの入力信号と、カウントするパルスをもつ 1 つの入力パルス信号があります。モデルはバスを使用して Bus Counter サブシステムにデータを送信し、そこから Outport ブロックに送信します。モデルはパルス信号 input と、Outport ブロックに接続されている出力を記録するように設定されています。

モデルをシミュレートし、ログ データが含まれる実行をシミュレーション データ インスペクターで作成します。
out = sim('ex_pulse_counter');シミュレーション データ インスペクターの信号へのアクセス
シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、ログ データにアクセスします。関数 Simulink.sdi.Run.getLatest は最後に作成された実行に対応する Simulink.sdi.Run オブジェクトを返します。
countRun = Simulink.sdi.Run.getLatest;
関数 getSignalsByName を使用して、input 信号にアクセスします。返された Simulink.sdi.Signal オブジェクトの Name プロパティをチェックします。
inSig = getSignalsByName(countRun,'input');
inSig.Nameans = 'input'
input 信号は合成信号ではないため、Signal オブジェクトの Children プロパティは空になります。
inChildren = inSig.Children; size(inChildren)
ans = 1×2
0 0
ここで、関数 getSignalsByName を使用して出力信号 OUT にアクセスします。OUT は、カウンターからの出力信号 output、カウンターの限度信号 upper_limit と lower_limit が LIMITBUS という名前の入れ子にされたバスに含まれるバス信号です。
outSig = getSignalsByName(countRun,'OUT');返される Signal オブジェクトの Name プロパティと Children プロパティをチェックします。Children プロパティ値には OUT バスの階層の次のレベルにある信号に対応する 2 つの Signal オブジェクトが含まれます。
outSig.Name
ans = 'OUT'
outChildren = outSig.Children; size(outChildren)
ans = 1×2
1 2
Signal オブジェクト outSig は合成信号に対応するため、Checked プロパティまたは関数 plotOnSubPlot を使用してシミュレーション データ インスペクターに信号データをプロットすることはできません。合成信号のデータをプロットするには、個々の Signal オブジェクトにアクセスします。
合成信号内の信号へのアクセス
対応する Signal オブジェクトの Children プロパティへのインデックス付けを行うことで、OUT バスと LIMITBUS 内の信号にアクセスできます。たとえば、OUT バスの Signal オブジェクトの output 信号にアクセスできます。
outChildren = outSig.Children; outputSig = outChildren(1); outputSig.Name
ans = 'OUT.output'
バス階層を通じて信号へのパスを指定することで、output 信号の Signal オブジェクトを取得することもできます。
outputSig = getSignalsByName(countRun,'OUT.output');
outputSig.Nameans = 'OUT.output'
upper_limit 信号にアクセスするには、バス内の信号への絶対パスを指定します。
upper_limitSig = getSignalsByName(countRun,'OUT.LIMITBUS.upper_limit');
upper_limitSig.Nameans = 'OUT.LIMITBUS.upper_limit'
入力引数
アクセスする信号が含まれる実行。Simulink.sdi.Run オブジェクトとして指定します。
アクセスする必要がある信号の名前。文字ベクトルまたは string として指定します。
モデルは、複数の信号に対して同じ信号名を使用できます。この場合、特定の信号にアクセスするときは、信号を生成するブロックのブロック パスを name 引数に含めることができます。たとえば、name を 'slexAircraftExample.Pilot.Stick' として指定して、slexAircraftExample モデルの Pilot ブロックの出力である Stick という名前の信号にアクセスします。
合成信号内の信号にアクセスするには、合成信号の階層構造を通じて信号へのパスを指定します。たとえば、name を 'COUNTERBUS.LIMITBUS.lower_limit' として指定して、バス COUNTERBUS に入れ子にされているバス LIMITBUS 内の lower_limit 信号にアクセスします。
データ型: char | string
出力引数
指定された名前に一致する 1 つ以上の信号。Simulink.sdi.Signal オブジェクトまたは Simulink.sdi.Signal オブジェクトの配列として返されます。
バージョン履歴
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)