Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

アクション言語構文としての MATLAB と C の相違点

Simulink® モデルの Stateflow® チャートには、ステート アクションと遷移アクションの構文を定義するアクション言語プロパティがあります。チャート キャンバスの左下隅にあるアイコンが、チャートのアクション言語を示します。

  • アクション言語は MATLAB®

  • アクション言語は C

MATLAB は、新しい Stateflow チャートの既定のアクション言語構文です。C をアクション言語として使用するチャートを作成するには、次のように入力します。

sfnew -c

アクション言語の機能の比較

次の表は、2 つのアクション言語の機能の最も大きな違いを示しています。

機能アクション言語が MATLABアクション言語が C の場合

ベクトルと行列のインデックス

かっこやコンマで区切られた 1 ベースのインデックス (たとえば、A(4,5))。ベクトルおよび行列でサポートされている演算を参照してください。

大かっこで区切られた 0 ベースのインデックス (たとえば、A[3][4])。ベクトルおよび行列でサポートされている演算を参照してください。

C 構造:

  • インクリメント演算とデクリメント演算 a++ および a--

  • 代入演算 a += ba –= ba *= b および a /= b

  • 評価演算 a != b および !a

  • 二項演算 a %% ba >> ba << ba & b および a | b

  • コメント マーカー // および /* */

MATLAB 構文への自動修正。たとえば、a++a = a+1 に修正されます。MATLAB をアクション言語として使用する場合の自動修正を参照してください。

サポートあり。チャート データでサポートされている演算を参照してください。

ステート アクション内の条件付きコントロール ステートメントおよびループ コントロール ステートメント

サポートあり。たとえば、ステート アクション内で iffor および while の各ステートメントを使用できます。ループと条件付きステートメントを参照してください。

サポートなし。条件付きパターンおよびループ パターンには、代わりにグラフィカル関数を使用します。グラフィカル関数の定義によるロジック パターンの再利用を参照してください。

遷移アクションの形式

自動修正により、遷移アクションは中かっこ {} で囲まれます。遷移アクションを参照してください。

遷移アクションを中かっこ {} で囲む必要なし。遷移アクションを参照してください。

パラレル ステートの順序付け

明示的な順序付けのみ。パラレル ステートの実行順序を参照してください。

明示的または暗黙的な順序付け。パラレル ステートの実行順序を参照してください。

整数データ型

32、16 または 8 ビットの符号付きおよび符号なし整数。

64、32、16 または 8 ビットの符号付きおよび符号なし整数。

64 ビット整数は固定小数点数として実装されます。

  • int64fixdt(1,64,0) のエイリアス型です。

  • uint64fixdt(0,64,0) のエイリアス型です。

固定小数点構造:

  • 特殊な代入演算子 :=

  • 4.3C などの状況依存の定数

サポートなし

サポートあり。C チャートでの固定小数点上位変換の上書き固定小数点のコンテキスト依存定数を参照してください。

複素数データ

複素数表記法 a + bi または complex 演算子を使用。複素数データでサポートされている演算を参照してください。

complex 演算子を使用。複素数表記法はサポートされていません。複素数データでサポートされている演算を参照してください。

データ型の伝播

MATLAB のデータ型ルールに準拠。たとえば、double 型のデータを int32 型のデータに追加すると、結果は int32 型のデータになります。

C のデータ型ルールに準拠。たとえば、double 型のデータを int32 型のデータに追加すると、結果は double 型のデータになります。

明示的な型キャスト演算

次のいずれかのキャスト型を使用:

  • MATLAB 型変換関数 (たとえば、single(x))。

  • 型のキーワードを含む関数 cast (たとえば、cast(x,'int8'))。

  • 'like' キーワードを含む関数 cast (たとえば、cast(x,'like',z))。

type 演算子はサポートされません。型キャスト演算を参照してください。

次のいずれかのキャスト型を使用:

  • MATLAB 型変換関数 (たとえば、uint16(x))。

  • type 演算子を含む関数 cast (たとえば、cast(x,type(z)))。

関数 cast の型のキーワードはサポートされません。型キャスト演算を参照してください。

スカラー拡張

サポートなし

サポートあり。行列のすべての要素への値の代入を参照してください。
string データ

サポートなし

サポートあり。string を使用したテキスト情報の管理を参照してください。

データ プロパティの指定:

  • 最初のインデックス

  • 最終値をベース ワークスペースへ保存

  • 単位

サポートなし

サポートあり。詳細については、以下を参照してください。

グラフィカル関数、真理値表関数、および MATLAB 関数のデータのスコープ

ConstantParameterInputOutputLocalConstantParameterInputOutputTemporary

MATLAB 関数内部でステート、ローカル データ、メッセージ、ローカル イベントを指定する場合のドット表記の使用

サポートあり。ドット表記を使用したデータの識別を参照してください。

サポートなし

カスタム コードの関数および変数

動作は [カスタム コードのインポート] コンフィギュレーション パラメーターの設定によって異なります。

  • [カスタム コードのインポート] がオンの場合は、カスタム コードの関数と変数の両方がステートおよび遷移でサポートされます (既定)。

  • [カスタム コードのインポート] がオフの場合は、カスタム コード関数のみがサポートされます。関数 coder.ceval (MATLAB Coder) を使用します。

カスタム コードカスタム コードのインポートを参照してください。

カスタム コードの関数および変数はステートおよび遷移でサポートされます。

生成コード内の行優先の配列レイアウト

サポートなし

サポートあり。行優先の配列レイアウトを参照してください。

生成コード内の多次元配列レイアウト

サポートなし

ローカル データのサポートあり。多次元配列レイアウトを参照してください。

構造体パラメーター

調整可能、調整不可能なパラメーターのサポートあり。

調整可能なパラメーターのみサポートあり。

グローバル fimath オブジェクトの使用

サポートあり

サポートなし

参考

関連するトピック