Main Content

Stateflow オブジェクトのプロパティの変更と関数の呼び出し

Stateflow® API オブジェクトには、Stateflow エディターで設定した値に対応するプロパティがあります。たとえば、エディターを使用してステートの位置を変更するには、ステートをクリックしてドラッグします。Stateflow API を使用してステートの位置を変更するには、対応する Stateflow.State オブジェクトの Position プロパティを変更します。

st.Position = [10 20 100 80];

さらに、オブジェクト関数は、Stateflow エディター内のアクションに対応するサービスを提供します。たとえば、エディターを使用して遷移の [プロパティ] ダイアログ ボックスを開くには、遷移を右クリックして [プロパティ] を選択します。Stateflow API では、対応する Stateflow.Transition オブジェクトの関数 dialog を呼び出してこのダイアログ ボックスを開きます。

dialog(tr);

オブジェクト関数の呼び出し

API オブジェクトの関数を呼び出すには、標準の関数呼び出し表記を使用します。たとえば、[チャート プロパティ] ダイアログ ボックスを開くには、対応する Stateflow.Chart オブジェクト ch の関数 dialog を呼び出します。

dialog(ch)

ドット表記を使用したプロパティへのアクセス

API オブジェクトのプロパティにアクセスするには、ドット表記を使用します。たとえば、Stateflow.Chart オブジェクト chStateMachineType プロパティの値を確認するには、次のように入力します。

ch.StateMachineType

同様に、チャートのアクション言語を変更するには、チャートの ActionLanguage プロパティを変更します。

ch.ActionLanguage = "MATLAB";

API プロパティのサブプロパティにアクセスするために、ドット表記を使用する単一の式で複数のプロパティ名を入れ子にすることができます。たとえば、対応する Stateflow.Chart オブジェクトのサブプロパティ Debug.Breakpoints.OnEntry を変更することにより、チャート上で Entry ブレークポイントを設定できます。

ch.Debug.Breakpoints.OnEntry = true;

プロパティまたは関数が別の API オブジェクトを返す場合は、入れ子になったドット表記を使用して、2 番目のオブジェクトのプロパティと関数にアクセスすることもできます。たとえば、Stateflow.ChartMachine プロパティは、対応するチャートを含む Stateflow.Machine オブジェクトを返します。この Stateflow.Machine オブジェクトの Name プロパティにアクセスするには、次の式を入力します。

machineName = ch.Machine.Name;

同様に、関数 defaultTransitions は、チャート内のデフォルト遷移に対応する Stateflow.Transition オブジェクトの配列を返します。チャートにデフォルト遷移が 1 つだけ含まれている場合は、次のように入力してラベルを取得できます。

label = defaultTransitions(ch).LabelString;

チャートに複数のデフォルト遷移が含まれている場合は、まず配列を保存してから、配列インデックスを使用して各ラベルを取得する必要があります。

transitions = defaultTransitions(ch);
label1 = transitions(1).LabelString;
label2 = transitions(2).LabelString;

複数プロパティの値の取得と設定

関数 get を呼び出すことにより、1 つの API オブジェクトの複数のプロパティに単一のコマンドでアクセスできます。たとえば、Stateflow.Chart オブジェクト ch の名前と説明を取得するには、次のように入力します。

chartInfo = get(ch,{"Name","Description"});

get を使用して複数の API オブジェクトのプロパティにアクセスすることもできます。たとえば、次のコマンドは、配列 chartArray 内の Stateflow.Chart オブジェクトの名前と説明を含む cell 配列を返します。

chartInfo = get(chartArray,{"Name","Description"});

同様に、関数 set を呼び出すことにより、複数のプロパティの値を変更できます。たとえば、Stateflow.Chart オブジェクト ch の名前と説明を変更するには次のように入力します。

set(ch,{"Name","Description"},{"Rectifier","Half-wave rectifier."})

配列 chartArray 内の Stateflow.Chart オブジェクトの名前と説明を設定するには、次のように入力します。

set(chartArray,{"Name","Description"},chartInfo)
このコマンドで、chartInfoN 行 2 列の cell 配列とする必要があります。ここで NchartArray 内のチャート数と等価です。chartInfo の 1 列目には新しいチャート名が含まれ、2 列目には新しい説明が含まれます。

参考

関数

オブジェクト

関連するトピック