メインコンテンツ

Stateflow での複素数データの演算

Simulink® モデルの Stateflow® チャートには、複素数データでの計算に使用する構文を定義するアクション言語プロパティがあります。アクション言語プロパティは次のとおりです。

  • アクション言語は MATLAB®

  • アクション言語は C。

詳細については、アクション言語構文としての MATLAB と C の相違点を参照してください。

複素数データの表記法

アクション言語として MATLAB を使用するチャートでは、複素数表記法、または complex 演算子を使用して複素数データを定義できます。

複素数表記法を使用するには、「a + bi」と入力します。ここで、ab は実数です。たとえば、次のステートメントは 3+4i の値を x に代入します。

x = 3 + 4i;

あるいは、complex 演算子を使用して複素数データを定義することもできます。complex 演算子は、以下の 2 つの引数を取ります。

complex(<real_part>,<imag_part>)

引数 <real_part><imag_part> は、複素数の実数部と虚数部を指定します。いずれの引数も、実数値、または実数値になる式でなければなりません。次のステートメントは 3+4i の値を x に代入します。

x = complex(3,4);

C をアクション言語として使用するチャートは、複素数表記法 a + bi をサポートしていません。2 つの実数値に基づいて複素数を定義するには、complex 演算子を使用します。

二項演算

二項演算は左結合であるため、優先順位が同じ演算子は左から右の順に評価されます。次の表に、二項演算の一覧を優先順位 (1 = 最高、3 = 最低) に従って示します。

演算

優先順位

アクション言語が MATLAB

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

a * b

1

乗算。

乗算。

a / b

1

除算。

サポートなし。MATLAB 関数で \ 演算を使用します。MATLAB 関数による複素数の除算の実行を参照してください。

a + b

2

加算。

加算。

a - b

2

減算。

減算。

a == b

3

比較、等しい。

比較、等しい。

a ~= b

3

比較、等しくない。

比較、等しくない。

a != b

3

サポートなし。演算 a ~= b を使用します。

比較、等しくない。

a <> b

3

サポートなし。演算 a ~= b を使用します。

比較、等しくない。

単項演算と単項アクション

単項演算は、二項演算子より優先順位が高く、かつ右結合であるため、右から左の順に評価されます。

演算

アクション言語が MATLAB

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

-a

負数。

負数。

a++

サポートなし。式 a = a+1 を使用します。

インクリメント。a = a+1 と等価です。

a--

サポートなし。式 a = a-1 を使用します。

デクリメント。a = a-1 と等価です。

代入演算

演算

アクション言語が MATLAB

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

a = b

シンプルな代入

シンプルな代入

a += b

サポートなし。式 a = a+b を使用します。

a = a+b と等価です。

a -= b

サポートなし。式 a = a-b を使用します。

a = a-b と等価です。

a *= b

サポートなし。式 a = a*b を使用します。

a = a*b と等価です。

複素数の実数部分と虚数部分へのアクセス

複素数の実数部と虚数部にアクセスするには、real 演算子と imag 演算子を使用します。

real 演算子

real 演算子は、複素数の実数部の値を返します。

real(<complex_expr>)

<complex_expr> は、複素数になる式です。たとえば、frame(200) が複素数 8.23 + 4.56i になる場合、この式は 8.2300 の値を返します。

real(frame(200))

imag 演算子

imag 演算子は、複素数の虚数部の値を返します。

imag(<complex_expr>)

<complex_expr> は、複素数になる式です。たとえば、frame(200) が複素数 8.23 + 4.56i になる場合、この式は 4.5600 の値を返します。

imag(frame(200))

参考

| | |

トピック