Main Content

ライブ エディターでのシンボリック変数への下付き文字、上付き文字、アクセントの追加

R2019a 以降、MATLAB® ライブ エディターでは、下付き文字、上付き文字、アクセントを含むシンボリック変数が標準の数学的表記で表示されます。この例では、MATLAB ライブ エディターでシンボリック変数に下付き文字、上付き文字、アクセントを追加する方法を示します。

下付き文字および上付き文字の追加

ライブ スクリプトでシンボリック変数に下付き文字を追加するには、対応するインデックスをアンダースコア (_) を 1 つ使用して変数に追加します。たとえば、symsを使用して下付き文字を含む 2 つのシンボリック変数を作成します。それらの変数を式で使用します。

syms F_a F_b
Ftot = F_a + F_b
Ftot = Fa+Fb

また、symを使用して下付き文字を含むシンボリック変数を作成し、その変数をシンボリック式に代入することもできます。

Fa = sym('F_a')
Fa = Fa

シンボリック変数に上付き文字を追加するには、対応するインデックスをアンダースコアを 2 つ (__) 使用して変数に追加します。たとえば、上付き文字を含む 2 つのシンボリック変数を作成します。

syms F__a F__b
Ftot = F__a + F__b
Ftot = Fa+Fb

シンボリック変数を式に代入すると、シンボリック式が ASCII 形式で表示されます。

アクセントの追加

ライブ スクリプトでシンボリック変数にアクセントを追加するには、対応する添字をアンダースコア (_) を使用して変数に追加します。たとえば、シンボル x の上に 1 つのドットが付いたシンボリック変数と 2 つのドットが付いたシンボリック変数を作成します。それらの変数を方程式で使用します。

syms x x_dot x_ddot c m k
eq1 = m*x_ddot - c*x_dot + k*x == 0
eq1 = kx-cx˙+mx¨=0

アクセントが付いたシンボリック変数の複素共役を計算すると、変数の上にバーの表記が追加されます。たとえば、関数conjを使用して、x_dot の複素共役を求めます。

xConj = conj(x_dot)
xConj = x˙

シンボリック変数でサポートされるアクセントの添字は次のとおりです。

suffix = ["ast"; "hat"; "tilde"; "vec"; "bar"; ...
   "ubar"; "dot"; "ddot"; "tdot"; "qdot"; ...
   "prime"; "dprime"; "tprime"; "qprime"];
accentList = [suffix, sym("x_" + suffix)]
accentList = 

(astx*hatxˆtildexvecxbarxubarxdotx˙ddotx¨tdotxqdotxprimexdprimextprimexqprimex)

シンボリック変数を含む行列の複素共役転置を計算する場合も、各変数の上にバーの表記が追加されます。たとえば、関数ctransposeまたは ' を使用して、accentList(:,2) のシンボリック変数の共役転置を求めます。

conjVar = accentList(:,2)'
conjVar = 

(x*xˆxxxxx˙x¨xxxxxx)

シンボリック変数を含む行列の非共役転置を計算する場合は、表示出力は変わりません。たとえば、関数transposeまたは .' を使用して、accentList(:,2) のシンボリック変数の非共役転置を求めます。

nonconjVar = accentList(:,2).'
nonconjVar = 

(x*xˆxxxxx˙x¨xxxxxx)

複数の下付き文字、上付き文字、アクセントの追加

複数の下付き文字、上付き文字、アクセントを含むシンボリック変数を作成できます。添字が複数ある場合、左から右の順にシンボリック変数に割り当てられます。

複数の下付き文字と上付き文字を含むシンボリック変数を作成します。下付き文字および上付き文字を複数追加すると、入力したインデックスがコンマ符号で区切られて左から右の順に表示されます。

x1 = sym('x_b_1__a__1')
x1 = xb,1a,1
x2 = sym('x__b_1_a__1')
x2 = x1,ab,1

次に、複数のアクセントを含むシンボリック変数を作成します。アクセントを複数追加すると、入力したアクセントが左から右の順に最も近い前の変数またはインデックスに割り当てられます。次に例をいくつか示します。

v1 = sym('v_prime_vec')
v1 = 

v

v2 = sym('v_vec_prime')
v2 = v
va = sym('v__a_bar_prime')
va = va
vb = sym('v_bar__b_prime')
vb = vb

シンボリック変数に添字を追加すると、同じような出力になることがあります。ただし、変数が等しくなるのは添字の順序も同じ場合だけです。たとえば、出力が同じになる 3 つのシンボリック変数を作成します。

syms F_t__a
F1 = F_t__a
F1 = Fta
F2 = sym('F_t__a')
F2 = Fta
F3 = sym('F__a_t')
F3 = Fta

関数isequalを使用して、シンボリック変数が互いに等しいかどうかを確認します。

TF_12 = isequal(F1,F2)
TF_12 = logical
   1

TF_23 = isequal(F2,F3)
TF_23 = logical
   0

関連するトピック