Stateflow.State
チャート、ステート、またはボックス内のステート
説明
Stateflow.State オブジェクトは、リアクティブ システムの動作モードを記述するために使用します。詳細については、ステートを使用した動作モードの表現を参照してください。
作成
入力引数
プロパティ
Stateflow API オブジェクトには、Stateflow エディターで設定した値に対応するプロパティがあります。プロパティにアクセスするかプロパティを変更するには、ドット表記を使用します。複数の API オブジェクトの複数のプロパティにアクセスするか、それらを変更するには、関数 get および関数 set をそれぞれ使用します。詳細については、Stateflow オブジェクトのプロパティの変更と関数の呼び出しを参照してください。
内容
ステートの名前。string スカラーまたは文字ベクトルとして指定します。
ステートのラベル。string スカラーまたは文字ベクトルとして指定します。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。
この プロパティ は読み取り専用です。
ステートの during アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
この プロパティ は読み取り専用です。
ステートの entry アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
この プロパティ は読み取り専用です。
ステートの exit アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
この プロパティ は読み取り専用です。
Moore チャートでのステート アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは Moore チャートでのみサポートされています。詳細については、Moore チャートの設計ガイドラインを参照してください。
この プロパティ は読み取り専用です。
ステートの on アクション。文字ベクトルの cell 配列として、次の形式で指定します。
{'trigger1','action1',...,'triggerN','actionN'}このプロパティの値は、ステートの LabelString プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
ステートをコメント アウトするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティを true に設定することは、ステートを右クリックして [コメント アウト] を選択することと等価です。詳細については、Stateflow チャート内のオブジェクトのコメントアウトを参照してください。
この プロパティ は読み取り専用です。
ステートを暗黙的にコメント アウトするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。ステートを含むオブジェクトを明示的にコメントアウトすると、そのステートは暗黙的にコメントアウトされます。ステートが Atomic サブチャートに含まれている場合、明示的にコメント化されたオブジェクトもその Atomic サブチャートに含まれていない限り、このプロパティは false になります。
R2023a 以降
この プロパティ は読み取り専用です。
ステートをコメントアウトするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。IsExplicitlyCommented または IsImplicitlyCommented が true の場合、このプロパティは true になります。
ステートに追加するコメント テキスト。string スカラーまたは文字ベクトルとして指定します。このプロパティは、IsExplicitlyCommented プロパティが true である場合にのみ適用されます。Stateflow エディターで、ステート上のコメント バッジ
をポイントすると、テキストがツールヒントとして表示されます。IsExplicitlyCommented プロパティを false に設定すると、CommentText の値は "" に戻ります。
グラフィカルな外観
ステートの位置とサイズ。[left top width height] 形式の 4 要素数値ベクトルとして指定します。
この プロパティ は読み取り専用です。
ステートがボックス、ステート、または関数とグラフィカルに交差するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。
ステートがグループ化されたステートかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。グループ化されたステートをコピーして貼り付けると、ステートだけでなく、その内容もすべてコピーされます。詳細については、グループ化によるコピーと貼り付けを参照してください。
ステートがサブチャートかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。
ステートの内容のプレビューを表示するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティは、IsSubchart プロパティが true である場合にのみ適用されます。
入力遷移の矢印のサイズ。スカラーとして指定します。
ステート ラベルのフォント サイズ。スカラーとして指定します。ステートを含むチャートの StateFont.Size プロパティが、このプロパティの初期値を設定します。
ステート構造
ステート内の包含の最上位にあるサブステートの構造。"EXCLUSIVE_OR" または "PARALLEL_AND" として指定します。詳細については、サブステート構造の指定を参照してください。
この プロパティ は読み取り専用です。
兄弟ステートの構造。'AND' または 'OR' として指定します。ステートは、親であるステートまたはチャートの Decomposition プロパティからこのプロパティを継承します。
パラレル (AND) 構造内のステートの実行順序。整数スカラーとして指定します。このプロパティは、次の両方の条件が満たされている場合にのみ適用されます。
ステートの
Typeプロパティが"AND"である。ステートを含むチャートの
UserSpecifiedStateTransitionExecutionOrderプロパティがtrueである。
アクティブ ステートの出力
ステートのアクティブ ステート データの出力端子を作成するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。
この プロパティ は読み取り専用です。
ステートのアクティブ ステート データ オブジェクト。Stateflow.Data オブジェクトとして指定します。このプロパティは、ステートの HasOutputData プロパティが true である場合にのみ適用されます。
ステートのアクティブ ステート データ オブジェクトの名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、ステートの HasOutputData プロパティが true である場合にのみ適用されます。
アクティブ ステートの出力データに対する監視モード。"SelfActivity"、"ChildActivity"、または "LeafStateActivity" として指定します。
ステートのアクティブ ステート データ オブジェクトの列挙データ型の名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、ステートの OutputMonitoringMode プロパティが "ChildActivity" または "LeafStateActivity" である場合にのみ適用されます。詳細については、Enum 名を参照してください。
アクティブ ステート データの出力の列挙データ型を手動で定義するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティは、ステートの OutputMonitoringMode プロパティが "ChildActivity" または "LeafStateActivity" である場合にのみ適用されます。詳細については、ステート アクティビティの列挙型の定義を参照してください。
信号ログとテスト ポイントの監視
ステートに対する信号のログのプロパティ。次のプロパティをもつ Stateflow.SigLoggingInfo オブジェクトとして指定します。
DataLogging— 信号のログを有効にするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。DecimateData— ログ データの量を制限するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。Decimation— 間引き間隔。整数スカラーとして指定します。このプロパティは、DecimateDataプロパティがtrueである場合にのみ適用されます。LimitDataPoints— ログに記録するデータ点の数を制限するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。MaxPoints— ログに記録するデータ点の最大数。整数スカラーとして指定します。このプロパティは、LimitDataPointsプロパティがtrueである場合にのみ適用されます。NameMode— 信号名のソース。"SignalName"または"Custom"として指定します。LoggingName— カスタム信号名。string スカラーまたは文字ベクトルとして指定します。このプロパティは、NameModeプロパティが"Custom"である場合にのみ適用されます。
信号のログでは、シミュレーション中にステートの自己アクティビティが MATLAB® ワークスペースに保存されます。詳細については、Log Simulation Output for States and Dataを参照してください。
例: state.LoggingInfo.DataLogging = true;
ステートをテスト ポイントとして設定するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。シミュレーション時にテストポイントをフローティング スコープで監視できます。テスト ポイントの値を MATLAB ワークスペースにログ記録することも可能です。詳細については、テスト ポイントとしての信号の設定 (Simulink)を参照してください。
デバッグ
ステートに対するデバッガーのプロパティ。次のプロパティをもつ Stateflow.StateDebug オブジェクトとして指定します。
OnEntry—On State Entryブレークポイントを設定するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。OnDuring—During Stateブレークポイントを設定するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。OnExit—On State Exitブレークポイントを設定するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。
詳細については、チャートのデバッグのためのブレークポイントの設定を参照してください。
例: state.Debug.Breakpoints.OnEntry = true;
例: state.Debug.Breakpoints.OnDuring = true;
例: state.Debug.Breakpoints.OnExit = true;
コード生成
生成コード内でのステート関数の外観。次のいずれかの値として指定します。
"Auto"— 内部計算により、生成コード内のステート関数の外観が決まります。"Function"— ステート関数は別個の静的関数として実装されます。"Inline"— ステート関数に対する呼び出しがコードで置き換えられます。ただし、関数が再帰の一部でない場合に限ります。
詳細については、ステート関数の生成コード内インライン化 (Simulink Coder)を参照してください。
階層
この プロパティ は読み取り専用です。
ステートを含むチャート。Stateflow.Chart オブジェクトとして指定します。
この プロパティ は読み取り専用です。
ステートのサブビューアー。Stateflow.Chart、Stateflow.State、Stateflow.Box のいずれかのオブジェクトとして指定します。サブビューアーは、ステートをグラフィカルに表示できるチャートまたはサブチャートです。
この プロパティ は読み取り専用です。
ステートを含むマシン。Stateflow.Machine オブジェクトとして指定します。
この プロパティ は読み取り専用です。
モデルの階層構造におけるステートの親の場所。文字ベクトルとして指定します。
識別
ステートの説明。string スカラーまたは文字ベクトルとして指定します。
ステートのドキュメント リンク。string スカラーまたは文字ベクトルとして指定します。
ステートのユーザー定義のタグ。任意の型のデータとして指定します。
この プロパティ は読み取り専用です。
セッションに依存しない識別子。整数スカラーとして指定します。このプロパティを使用して、ステートをその親チャート内の他のオブジェクトと区別します。
この プロパティ は読み取り専用です。
一意の識別子。整数スカラーとして指定します。SSIdNumber とは異なり、このプロパティの値は新しい MATLAB セッションを開始するたびに再割り当てされ、オブジェクトが削除されるとリサイクルされる場合があります。
オブジェクト関数
find | 階層内で指定したオブジェクトの識別 |
getChildren | オブジェクトの子の特定 |
getParent | オブジェクトの親の特定 |
defaultTransitions | 指定したオブジェクト内のデフォルト遷移の特定 |
innerTransitions | 指定した遷移元をもつ内部遷移の特定 |
outerTransitions | 指定した遷移元をもつ出力遷移の特定 |
sinkedTransitions | 指定した遷移先をもつ遷移の特定 |
sourcedTransitions | 指定した遷移元をもつ遷移の特定 |
getReferences | シンボル名への参照の特定 |
renameReferences | シンボル名の変更とそのシンボル名への参照の更新 |
commentedBy | グラフィカル オブジェクトを暗黙的にコメントアウトするオブジェクトの特定 |
dialog | プロパティ ダイアログ ボックスを開く |
view | 編集環境でオブジェクトを表示 |
highlight | グラフィカル オブジェクトの強調表示 |
fitToView | グラフィカル オブジェクトの拡大表示 |
例
チャート ch にステートを追加します。名前は A に設定します。
state = Stateflow.State(ch);
state.Name = "A";ステート state に複数行のラベルを入力するために、以下を行うことができます。
MATLAB 関数
sprintfを呼び出し、エスケープ シーケンス\nを使用して改行文字を挿入する。str = sprintf("A\nen: action1();\ndu: action2();\nen,du: action3();"); sA.LabelString = str;
関数
newlineを使用して改行文字を作成する、連結されたテキスト表現を入力する。str = "A" + newline + ... "en: action1();" + newline + ... "du: action2();" + newline + ... "en,du: action3();" sA.LabelString = str;

ステート ラベルによって指定されたステート名、entry アクション、during アクションを抽出するには、次のように入力します。
name = state.Name
name =
'A'entry = state.EntryAction
entry =
' action1();
action3();'during = state.DuringAction
during =
' action2();
action3();'詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。
サブチャート内にあるジャンクションをサブチャート外にあるジャンクションに接続するスーパートランジションを作成します。

モデルを開き、チャートの Stateflow.Chart オブジェクトにアクセスします。
open_system("sfSupertransitionAPIExample") ch = find(sfroot,"-isa","Stateflow.Chart");
サブチャートの Stateflow.State オブジェクトとジャンクションの Stateflow.Junction オブジェクトにアクセスします。
st = find(ch,"-isa","Stateflow.State"); j1 = find(st,"-isa","Stateflow.Junction"); j2 = find(ch,"-isa","Stateflow.Junction","-depth",1);
サブチャートの元の位置を、一時ワークスペース変数 subchartPosition に保存します。
subchartPosition = st.Position;
IsSubchart プロパティと IsGrouped プロパティを false に設定することにより、サブチャートを通常のステートに変換します。
st.IsSubchart = false;
Assertion failed: Deviant 'root deviant' not opened for transactions. Attempt to modify object of type 'StateflowDI.Junction' [id = -1 ] at kernel/deviant/Deviant.cpp:70:
st.IsGrouped = false;
サブチャートを通常のステートに変換すると、内容が表示されるようサイズが変化する場合があります。

ジャンクション j1 をジャンクション j2 へと接続する遷移を追加します。
tr = Stateflow.Transition(ch); tr.Source = j1; tr.Destination = j2;

IsSubchart プロパティを true に設定することにより、ステートをサブチャートに戻します。サブチャートを元の位置に戻します。
st.IsSubchart = true; st.Position = subchartPosition;

これで、ジャンクション間の遷移はサブチャートの境界を越えるスーパートランジションとなります。
バージョン履歴
R2006a より前に導入Stateflow.State オブジェクトに、次の新しいオブジェクト関数とプロパティが追加されました。
オブジェクト関数
getReferencesは、チャートがステートの名前を参照している場所を返します。オブジェクト関数
renameReferencesは、ステートの名前を変更し、チャート内のそのステート名への参照をすべて更新します。オブジェクト関数
commentedByは、ステートをコメントアウトさせる明示的にコメント化されたオブジェクトを特定します。プロパティ
IsCommentedは、ステートをコメントアウトするかどうかを示します。このプロパティは、オブジェクト関数isCommentedを置き換えるものです。
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)