getSignalsByName
説明
は、sigs
= getSignalsByName(runObj
,name
)name
で指定された名前をもつ 1 つ以上の Simulink.sdi.Signal
オブジェクトを返します。
例
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.Name
ans = '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.Name
ans = 'OUT.output'
upper_limit
信号にアクセスするには、バス内の信号への絶対パスを指定します。
upper_limitSig = getSignalsByName(countRun,'OUT.LIMITBUS.upper_limit');
upper_limitSig.Name
ans = 'OUT.LIMITBUS.upper_limit'
入力引数
runObj
— アクセスする信号が含まれる実行
Simulink.sdi.Run
オブジェクト
アクセスする信号が含まれる実行。Simulink.sdi.Run
オブジェクトとして指定します。
name
— アクセスする必要がある信号の名前
文字ベクトル | string
アクセスする必要がある信号の名前。文字ベクトルまたは string として指定します。
モデルは、複数の信号に対して同じ信号名を使用できます。この場合、特定の信号にアクセスするときは、信号を生成するブロックのブロック パスを name
引数に含めることができます。たとえば、name
を 'slexAircraftExample.Pilot.Stick'
として指定して、slexAircraftExample
モデルの Pilot
ブロックの出力である Stick
という名前の信号にアクセスします。
合成信号内の信号にアクセスするには、合成信号の階層構造を通じて信号へのパスを指定します。たとえば、name
を 'COUNTERBUS.LIMITBUS.lower_limit'
として指定して、バス COUNTERBUS
に入れ子にされているバス LIMITBUS
内の lower_limit
信号にアクセスします。
データ型: char
| string
出力引数
sigs
— 指定された名前に一致する信号
Simulink.sdi.Signal
オブジェクト | Simulink.sdi.Signal
オブジェクトの配列
指定された名前に一致する 1 つ以上の信号。Simulink.sdi.Signal
オブジェクトまたは Simulink.sdi.Signal
オブジェクトの配列として返されます。
バージョン履歴
R2020a で導入
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)