このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
children
シンボリック式の部分式または項
R2020b から、構文 subexpr = children(expr)
は、スカラー入力 expr
に対し、ベクトルの代わりに "入れ子でない cell 配列" として subexpr
を返します。subexpr = children(expr,ind)
を使用して、返された部分式の cell 配列にインデックスを付けることができます。詳細は、互換性についての考慮事項を参照してください。
説明
例
シンボリック式の子部分式の検出
シンボリック式 の子部分式を検出します。部分式は、入れ子でない cell 配列で返されます。children
は、部分式を返すときに内部の並べ替え規則を使用します。subexpr{i}
を使用して、cell 配列の各要素にインデックスを付けることができます。ここで、i
はセルのインデックスです。和の子部分式は項です。
syms x y subexpr = children(x^2 + x*y + y^2)
subexpr=1×3 cell array
{[x*y]} {[x^2]} {[y^2]}
s1 = subexpr{1}
s1 =
s2 = subexpr{2}
s2 =
s3 = subexpr{3}
s3 =
関数 children
でインデックス ind
を指定して、部分式の各要素にインデックスを付けることもできます。
s1 = children(x^2 + x*y + y^2,1)
s1 =
s2 = children(x^2 + x*y + y^2,2)
s2 =
s3 = children(x^2 + x*y + y^2,3)
s3 =
部分式の cell 配列をベクトルに変換するには、コマンド [subexpr{:}]
を使用できます。
V = [subexpr{:}]
V =
方程式の子部分式の検出
方程式 の子部分式を検出します。方程式の子部分式は、1 行 2 列の cell 配列で返されます。cell 配列のすべての要素にインデックスを付けます。方程式の部分式は、方程式の左辺と右辺です。
syms x y subexpr = children(x^2 + x*y == y^2 + 1)
subexpr=1×2 cell array
{[x^2 + y*x]} {[y^2 + 1]}
subexpr{:}
ans =
ans =
次に、不等式 の子部分式を検出します。返された cell 配列のすべての要素にインデックスを付けます。不等式の子部分式は、不等式の左辺と右辺です。
subexpr = children(sin(x) < cos(x))
subexpr=1×2 cell array
{[sin(x)]} {[cos(x)]}
subexpr{:}
ans =
ans =
積分の子部分式の検出
積分 の子部分式を検出します。子部分式は、シンボリック式の cell 配列として返されます。
syms f(x) a b subexpr = children(int(f(x),a,b))
subexpr=1×4 cell array
{[f(x)]} {[x]} {[a]} {[b]}
V = [subexpr{:}]
V =
式のテイラー近似のプロット
関数 の 付近のテイラー近似を求めます。
syms x
t = taylor(cos(x),x,2)
t =
このテイラー展開は、 または の符号で区切られる 6 つの項を持ちます。
関数 をプロットします。children
を使用して式の項を取り出します。含まれる項が増えるに従ってテイラー展開が関数をより正確に近似することを示します。
fplot(cos(x),[0 4]) hold on s = 0; for i = 1:6 s = s + children(t,i); fplot(s,[0 4],'--') end legend({'cos(x)','1 term','2 terms','3 terms','4 terms','5 terms','6 terms'})
行列の要素の子部分式の検出
関数 children
を呼び出して、次のシンボリック行列入力の子部分式を検出します。結果は、行列の各要素の子部分式を含む、2
行 2
列の入れ子の cell 配列となります。
syms x y symM = [x + y, sin(x)*cos(y); x^3 - y^3, exp(x*y^2) + 3]
symM =
s = children(symM)
s=2×2 cell array
{1x2 cell} {1x2 cell}
{1x2 cell} {1x2 cell}
入れ子の cell 配列 s
の要素に対し、入れ子を解除またはアクセスするには、中かっこを使用します。たとえば、s
の {1,1}-
要素は 1
行 2
列のシンボリック式の cell 配列です。
s11 = s{1,1}
s11=1×2 cell array
{[x]} {[y]}
中かっこを使用して、s
の各要素の入れ子を解除します。大かっこを使用して、入れ子でない cell 配列をベクトルに変換します。
s11vec = [s{1,1}{:}]
s11vec =
s21vec = [s{2,1}{:}]
s21vec =
s12vec = [s{1,2}{:}]
s12vec =
s22vec = [s{2,2}{:}]
s22vec =
入れ子の cell 配列 s
の各要素が、入れ子でない同じサイズの cell 配列を含む場合は、入力引数 ind
を使用して、入れ子の cell 配列の要素にアクセスすることもできます。インデックス ind
により、children
はシンボリック行列入力 symM
の部分式の各列にアクセスできるようになります。
scol1 = children(symM,1)
scol1=2×2 cell array
{[x ]} {[cos(y) ]}
{[x^3]} {[exp(x*y^2)]}
[scol1{:}].'
ans =
scol2 = children(symM,2)
scol2=2×2 cell array
{[y ]} {[sin(x)]}
{[-y^3]} {[3 ]}
[scol2{:}].'
ans =
入力引数
expr
— 入力式
シンボリック数 | シンボリック変数 | シンボリック関数 | シンボリック式
入力式。シンボリック数、変数、関数、または式として指定します。
A
— 入力行列
シンボリック行列
入力行列。シンボリック行列として指定します。
ind
— 返す子部分式のインデックス
正の整数
返す子部分式のインデックス。正の整数として指定します。
children(expr)
が子部分式の入れ子でない cell 配列を返す場合、インデックス付きのchildren(expr,ind)
は cell 配列のind
番目の要素を返します。children(A)
が子部分式の入れ子の cell 配列 (各セル要素は同じサイズ) を返す場合、インデックス付きのchildren(A,ind)
は入れ子でない cell 配列のind
番目の列を返します。
バージョン履歴
R2012a で導入R2020b: children
は cell 配列を返す
R2020b より前のバージョンでは、構文 subexpr = children(
は、スカラー シンボリック式 expr
)expr
の子部分式を含むベクトル subexpr
を返します。構文 subexpr = children(
は、シンボリック行列 A
)A
の子部分式を含む入れ子でない cell 配列 subexpr
を返します。
R2020b から、構文 subexpr = children(expr)
は、ベクトルではなく cell 配列として subexpr
を返します。また、構文 subexpr = children(A)
は、入れ子でない cell 配列ではなく、入れ子の cell 配列として subexpr
を返します。subexpr = children(expr,ind)
を使用して、返された部分式の cell 配列にインデックスを付けることができます。例については、式のテイラー近似のプロットを参照してください。中かっこを使用して cell 配列にインデックスを付け、cell 配列の要素の入れ子を解除してアクセスすることもできます。subexpr
を入れ子でない cell 配列からベクトルに変換するには、コマンド [subexpr{:}]
を使用できます。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)