Main Content

Simulink.sdi.setCursorPositions

シミュレーション データ インスペクターで、アクティブなカーソル位置を指定

R2021a 以降

    説明

    Simulink.sdi.setCursorPositions(Name,Value) は、1 つ以上の名前と値のペアの引数で指定したとおりに、シミュレーション データ インスペクター内でアクティブなカーソルの位置を設定します。

    すべて折りたたむ

    シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、時間プロットまたはスパークライン上のカーソルの位置を指定したり、現在のカーソル位置に対応する時間にアクセスしたりできます。

    セッション ファイル vdp_mu.mldatx を開き、シミュレーション データ インスペクターにプロット データを追加します。このセッション ファイルには、ファン デル ポールの方程式のモデルに対する 20 秒間のシミュレーションのデータが格納されており、信号 x1x221 列のサブプロット レイアウト上の別々のサブプロットにプロットされています。

    openExample("simulink/InteractWithCursorsInTheSimulationDataInspectorExample", ...
        supportingFile="vdp_mu.mldatx")

    関数 Simulink.sdi.setNumCursors を使用して、プロットにカーソルを 1 つ追加します。

    Simulink.sdi.setNumCursors(1);

    シミュレーション開始後 5 秒時点の信号値を知る必要があるとします。関数 Simulink.sdi.setCursorPositions を使用してカーソルを t=5s に移動し、各サブプロット上のカーソルから信号値を読み取ります。カーソル ラベルの値の横のアスタリスクは、シミュレーションに 5s ちょうどの時点のシミュレーションを求める計算が含まれていなかったため、値が内挿されたことを示しています。

    Simulink.sdi.setCursorPositions('left',5);

    Subplots of x1 on the top and x2 on the bottom showing the data cursor at 5 seconds.

    x2 信号の 2 つのピーク間の時間を計算する必要があるとします。関数 Simulink.sdi.setNumCursors を使用するか、シミュレーション データ インスペクターの [データ カーソルを表示/非表示にします] を使用して、2 つ目のカーソルを追加します。

    numCursors = Simulink.sdi.getNumCursors;
    if(numCursors < 2)
        Simulink.sdi.setNumCursors(2);
    end

    カーソルをドラッグして、左側のカーソルが x2 信号の 1 つ目のピークに、右側のカーソルが 2 つ目のピークに配置されるようにします。あるいは、次のコードを実行してカーソルを配置できます。

    Simulink.sdi.setCursorPositions('left',5.921998549931304,...
        'right',12.378442136906246);

    Subplots of x1 on the top and x2 on the bottom with two cursors.

    シミュレーション データ インスペクターに、2 つのカーソル間の差が秒単位で表示されます。ただし、カーソル位置も差分値も丸められています。関数 Simulink.sdi.getCursorPositions を使用して、各カーソル位置に対応する正確な時間値をプログラムにより取得します。次に、各時間の間の差分を計算します。

    [t1,t2] = Simulink.sdi.getCursorPositions;
    T = t2 - t1
    T = 6.4564

    入力引数

    すべて折りたたむ

    名前と値の引数

    引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

    R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

    例: Simulink.sdi.setCursorPositions('right',10,'view','compare') は、[比較] ペイン上の右側のカーソルを 10s に移動します。

    左側のカーソルの位置。単位 s を使用する有限のスカラーとして指定します。名前と値のペアの引数 'left' を使用して、1 つのアクティブなカーソルの位置を指定します。

    カーソルの識別方法は相対的なものであり、絶対的ではありません。左側のカーソルに値を指定して、そのカーソルを右側のカーソルよりも右に移動した場合、左側のカーソルが右側のカーソルになります。その逆も同様です。

    例: Simulink.sdi.setCursorPositions('left',0.5) は左側のカーソルを 500ms に移動します。

    データ型: double

    右側のカーソルの位置。単位 s を使用する有限のスカラーとして指定します。

    カーソルの識別方法は相対的なものであり、絶対的ではありません。左側のカーソルに値を指定して、そのカーソルを右側のカーソルよりも右に移動した場合、左側のカーソルが右側のカーソルになります。その逆も同様です。

    例: Simulink.sdi.setCursorPositions('right',10) は、右側のカーソルを 10s に移動します。

    ヒント

    名前と値のペアの引数 'left' を使用して、1 つのアクティブなカーソルの位置を指定します。

    データ型: double

    カーソル移動の対象とするプロット領域。'inspect' または 'compare' として指定します。

    例: Simulink.sdi.setCursorPositions('right',10,'view','compare') は、[比較] ペイン上の右側のカーソルを 10s に移動します。

    データ型: char | string

    バージョン履歴

    R2021a で導入