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˙

このアクセントのリストは、サポートされるアクセントの添字および対応する表示出力を示します。記号 を使用したダガー アクセントは R2022b 以降で使用でき、記号 ° を使用した度アクセントは R2023a 以降で使用できます。

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

(astx*dagxdegx°hatxˆtildexvecxbarxubarxdotx˙ddotx¨tdotxqdotxprimexdprimextprimexqprimex)

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

conjVar = accentList(:,2)'
conjVar = 

(x*xx°xˆxxxxx˙x¨xxxxxx)

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

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

(x*xx°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

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

R2022b 以降、シンボリック変数の作成時に添字として符号も追加できるようになりました。サポートされている符号は、-+±、および # です。この符号のリストは、サポートされる符号の添字および対応する表示出力を示します。

suffix = ["minus"; "plus"; "plusmn"; "hash"];
signList = [suffix, sym("A_" + suffix)]
signList = 

(minusA-plusA+plusmnA±hashA#)

シンボリック変数を作成するときに、これらの符号を他のシンボルと組み合わせて追加できます。これらの符号を他の下付き文字または上付き文字と組み合わせるには、他の添字と一緒に 1 つのアンダースコア (_) または 2 つのアンダースコア (__) をそれぞれ使用します。以下に例を示します。

A1 = sym("A_minus_x_bar")
A1 = A-x
A2 = sym("A__plusmn__c")
A2 = A±c
A3 = sym("A_hash_123")
A3 = A#123
A4 = sym("A_minus_x_plus_y__r__theta")
A4 = A-x,+yr,θ

関連するトピック