Main Content

symfunmatrix

シンボリック行列関数の作成

R2022a 以降

説明

f = symfunmatrix(formula,inputs) は、シンボリック行列関数 f を作成します。シンボリック式 formula は、symmatrix データ型に変換可能な関数 f の本体です。inputs 内の変数は、関数 f の入力引数です。

  • 関数 f の入力引数が複数の変数である場合、inputs はシンボリック スカラー変数と行列変数から成る cell 配列でなければなりません。

  • 関数 f の入力引数が単一の変数である場合、inputs はシンボリック スカラー変数またはシンボリック行列変数として指定できます。

f = symfunmatrix(formula,inputs,[nrow ncol]) は、inputs = {var1,var2,...} について評価したシンボリック行列関数 f(var1,var2,...) のサイズを nrowncol 列として明示的に指定します。

  • formula が未割り当ての抽象関数を表す場合、f(var1,var2,...) のサイズは nrowncol 列になります。以下に例を示します。

    syms x 2 matrix;
    f = symfunmatrix('g(x)',{x},[3 4]);
    size(f(x))
    ans =
         3     4

  • formula がシンボリック式または定義付きの関数を表す場合、f(var1,var2,...) のサイズは formula のサイズに従います。以下に例を示します。

    syms X Y 2 matrix;
    f = symfunmatrix(X*Y - Y*X,{X,Y},[3 3]);
    size(f(X,Y))
    ans =
         2     2

すべて折りたたむ

サイズが 22 列の 2 つのシンボリック行列変数を作成します。

syms X Y [2 2] matrix

symfunmatrix を使用して、行列演算 XY-YX を表すシンボリック行列関数を作成します。

f = symfunmatrix(X*Y - Y*X,{X,Y})
f(X, Y) = XY-YX

関数を行列値 X=[1222]Y=[-2104] について評価します。評価済みの関数は、データ型 symmatrix のシンボリック行列変数になります。

fEval = f([1 2; 2 2],[-2 1; 0 4])
fEval = 

-Σ1+Σ2where  Σ1=(0-288)  Σ2=(-29-410)

class(fEval)
ans = 
'symmatrix'

評価済みの関数を sym データ型に変換します。

fSym = symmatrix2sym(fEval)
fSym = 

(-211-122)

入力引数

すべて折りたたむ

関数本体。symmatrix データ型に変換可能なシンボリック式として指定するか、抽象関数として指定します。

例: X*Y.'

関数の入力引数。シンボリック スカラー変数とシンボリック行列変数から成る cell 配列、シンボリック スカラー変数、またはシンボリック行列変数として指定します。

例: {X,Y}, symmatrix('t',[2 3])

データ型: cell | sym | symmatrix

評価済みのシンボリック行列関数の次元。非負の整数のベクトルとして指定します。ショートカットとして、整数を 1 つだけ指定してシンボリック正方行列関数を作成することもできます。

例: [2 3]

出力引数

すべて折りたたむ

シンボリック行列関数。symfunmatrix オブジェクトとして返されます。

関数 f のデータ型は symfunmatrix ですが、f([-2 3],[1 0]) のような評価済みの関数のデータ型は symmatrix になります。

制限

  • シンボリック行列関数を入力として受け入れるすべての関数を Symbolic Math Toolbox™ で表示するには、コマンド methods symfunmatrix を使用します。

ヒント

  • シンボリック行列関数を評価するときは、定義された入力引数と同じサイズの値を代入しなければなりません。例については、シンボリック行列関数の定義と評価を参照してください。比較として、以下の例はエラーを返します。

    syms X [2 2] matrix
    syms f(X) [1 1] matrix keepargs
    f(ones(4))
    

バージョン履歴

R2022a で導入

すべて展開する