Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Stateflow.EMFunction

チャート、ステート、ボックス、または関数内の MATLAB 関数

    説明

    Stateflow.EMFunction オブジェクトは、グラフィカルな Stateflow® 構造よりも MATLAB® コードを使った方が簡単に記述できるアルゴリズムのコード作成用に MATLAB 関数を作成するために使用します。代表的な使用例は、以下のとおりです。

    • 行列指向型の計算

    • データの解析と視覚化

    MATLAB 関数は、ステートと遷移のアクションで呼び出すことができます。詳細については、MATLAB 関数の定義による MATLAB コードの再利用を参照してください。

    作成

    説明

    function = Stateflow.EMFunction(parent) は、親であるチャート、ステート、ボックス、または関数内に Stateflow.EMFunction オブジェクトを作成します。

    入力引数

    すべて展開する

    新しい MATLAB 関数の親。次のいずれかのタイプの Stateflow API オブジェクトとして指定します。

    プロパティ

    すべて展開する

    Stateflow API オブジェクトには、Stateflow エディターで設定した値に対応するプロパティがあります。プロパティにアクセスするかプロパティを変更するには、ドット表記を使用します。複数の API オブジェクトの複数のプロパティにアクセスするか、それらを変更するには、関数 get および関数 set をそれぞれ使用します。詳細については、Stateflow オブジェクトのプロパティの変更と関数の呼び出しを参照してください。

    内容

    MATLAB 関数の名前。string スカラーまたは文字ベクトルとして指定します。

    MATLAB 関数のラベル。string スカラーまたは文字ベクトルとして指定します。

    MATLAB 関数のコード。string スカラーまたは文字ベクトルとして指定します。複数行のコードの入力には次を使用できます。

    • MATLAB 関数 sprintf を呼び出し、エスケープ シーケンス \n を使用して改行文字を挿入する。

      str = sprintf("function y=f(x)\ny=x+1;\nend");
      function.Script = str;
    • 関数 newline を使用して改行文字を作成する、連結されたテキスト表現を入力する。

      str = "function y=f(x)" + newline + ...
          "y=x+1;" + newline + ...
          "end";
      function.Script = str;

    MATLAB 関数をコメントアウトするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティを true に設定することは、MATLAB 関数を右クリックして [コメント アウト] を選択することと等価です。詳細については、Stateflow チャート内のオブジェクトのコメントアウトを参照してください。

    この プロパティ は読み取り専用です。

    MATLAB 関数を暗黙的にコメントアウトするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。MATLAB 関数を含むオブジェクトを明示的にコメントアウトすると、その関数は暗黙的にコメントアウトされます。MATLAB 関数が Atomic サブチャートまたは Atomic ボックスに含まれている場合、明示的にコメント化されたオブジェクトもその Atomic サブチャートまたは Atomic ボックスに含まれていない限り、このプロパティは false になります。

    R2023a 以降

    この プロパティ は読み取り専用です。

    MATLAB 関数をコメントアウトするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。IsExplicitlyCommented または IsImplicitlyCommentedtrue の場合、このプロパティは true になります。

    MATLAB 関数のコメント テキスト。string スカラーまたは文字ベクトルとして指定します。このプロパティは、IsExplicitlyCommented プロパティが true である場合にのみ適用されます。Stateflow エディターで、MATLAB 関数上のコメント バッジ をポイントすると、テキストがツールヒントとして表示されます。IsExplicitlyCommented プロパティを false に設定すると、CommentText の値は "" に戻ります。

    グラフィカルな外観

    MATLAB 関数の位置とサイズ。[left top width height] 形式の 4 要素数値ベクトルとして指定します。

    この プロパティ は読み取り専用です。

    MATLAB 関数がボックス、ステート、または関数とグラフィカルに交差するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。

    MATLAB 関数ラベルのフォント サイズ。スカラーとして指定します。グラフィカル関数を含むチャートの StateFont.Size プロパティが、このプロパティの初期値を設定します。

    整数および固定小数点データ

    MATLAB 関数内のデータが整数オーバーフローで飽和するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティが無効な場合、関数内のデータは整数オーバーフローでラップします。詳細については、チャート データの整数オーバーフローの処理を参照してください。

    このプロパティは、関数を含むチャートの ActionLanguage "C" である場合にのみ適用されます。それ以外の場合、データの動作はチャートの SaturateOnIntegerOverflow プロパティの値に依存します。

    MATLAB 関数の既定の fimath プロパティ。次のいずれかの値として指定します。

    • "Same as MATLAB Default" — 現在の既定の fimath オブジェクトと同じ fimath プロパティを使用します。

    • "Other:UserSpecified"InputFimath プロパティを使用して既定の fimath オブジェクトを指定します。

    このプロパティは、関数を含むチャートの ActionLanguage "C" である場合にのみ適用されます。それ以外の場合、データの動作はチャートの EmlDefaultFimath プロパティの値に依存します。

    既定の fimath オブジェクト。string スカラーまたは文字ベクトルとして指定します。MATLAB 関数の EmlDefaultFimath プロパティが "Other:UserSpecified" である場合、このプロパティを使用して次のことが可能です。

    • fimath オブジェクトを構成する式を入力。

    • fimath オブジェクトの変数名を MATLAB またはモデル ワークスペースに入力。

    このプロパティは、関数を含むチャートの ActionLanguage "C" である場合にのみ適用されます。それ以外の場合、データの動作はチャートの InputFimath プロパティの値に依存します。

    コード生成

    生成コード内での MATLAB 関数の外観。次のいずれかの値として指定します。

    • "Auto" — 内部計算により、生成コード内の関数の外観が決まります。

    • "Function" — 関数は別個の C 関数として実装されます。

    • "Inline" — 関数に対する呼び出しがコードで置き換えられます。ただし、関数が再帰の一部でない場合に限ります。

    詳細については、ステート関数の生成コード内インライン化 (Simulink Coder)を参照してください。

    階層

    この プロパティ は読み取り専用です。

    MATLAB 関数を含むチャート。Stateflow.Chart オブジェクトとして指定します。

    この プロパティ は読み取り専用です。

    MATLAB 関数のサブビューアー。Stateflow.ChartStateflow.StateStateflow.BoxStateflow.Function のいずれかのオブジェクトとして指定します。サブビューアーは、MATLAB 関数をグラフィカルに表示できるチャートまたはサブチャートです。

    この プロパティ は読み取り専用です。

    MATLAB 関数を含むマシン。Stateflow.Machine オブジェクトとして指定します。

    この プロパティ は読み取り専用です。

    モデルの階層構造における MATLAB 関数の親の場所。文字ベクトルとして指定します。

    識別

    MATLAB 関数の説明。string スカラーまたは文字ベクトルとして指定します。

    MATLAB 関数のドキュメント リンク。string スカラーまたは文字ベクトルとして指定します。

    MATLAB 関数のユーザー定義のタグ。任意の型のデータとして指定します。

    この プロパティ は読み取り専用です。

    セッションに依存しない識別子。整数スカラーとして指定します。このプロパティを使用して、MATLAB 関数をモデル内の他のオブジェクトと区別します。

    この プロパティ は読み取り専用です。

    一意の識別子。整数スカラーとして指定します。SSIdNumber とは異なり、このプロパティの値は新しい MATLAB セッションを開始するたびに再割り当てされ、オブジェクトが削除されるとリサイクルされる場合があります。

    オブジェクト関数

    find階層内で指定したオブジェクトの識別
    getChildrenオブジェクトの子の特定
    getParentオブジェクトの親の特定
    getReferencesシンボル名への参照の特定
    renameReferencesシンボル名の変更とそのシンボル名への参照の更新
    commentedByグラフィカル オブジェクトを暗黙的にコメントアウトするオブジェクトの特定
    dialogプロパティ ダイアログ ボックスを開く
    view編集環境でオブジェクトを表示
    highlightグラフィカル オブジェクトの強調表示
    fitToViewグラフィカル オブジェクトの拡大表示

    すべて折りたたむ

    チャート ch に MATLAB 関数を追加します。ラベルは "[y1,y2] = f(x1,x2,x3)" に設定します。

    function = Stateflow.EMFunction(ch);
    function.LabelString = "[y1,y2] = f(x1,x2,x3)";

    バージョン履歴

    R2006a より前に導入

    すべて展開する