Main Content

fold

関数を使用したベクトルの結合 (たたみ込み)

説明

fold(fun,v) は、fun を使用して v をたたみ込みます。つまり、fold は、v の最初の 2 つの要素で fun を呼び出した後、その結果と次の要素で fun を呼び出し、これを最後の要素が結合されるまで繰り返します。プログラムでは、fold 演算は fold(fun,v) = fun(fold(fun,v(1:end-1)),v(end)) になります。

fold(fun,v,defaultVal) は、v が空の場合、defaultVal の値を返します。

関数を使用したベクトルのたたみ込み

関数 power を使用して、シンボリック変数で構成されるベクトルをたたみ込みます。出力は、fold がどのように指定された関数を使い、ベクトルの要素を左から右に結合するかを示しています。

syms a b c d e
fold(@power, [a b c d e])
ans =
(((a^b)^c)^d)^e

変数が値の集合に属すると仮定する

変数 x が値の集合 1, 2, ..., 10 に属すると仮定するには、fold を使用して、or を、x == 1, ..., x == 10 という条件に適用します。assumptions を使用して、仮定が設定されていることをチェックします。

syms x
cond = fold(@or, x == 1:10);
assume(cond)
assumptions
ans =
x == 1 | x == 2 | x == 3 | x == 4 | x == 5 |...
 x == 6 | x == 7 | x == 8 | x == 9 | x == 10

fold 演算の既定値の指定

入力が空のときの fold の既定値を、3 番目の引数の指定によって指定します。入力が空のときに 3 番目の引数が指定されていない場合、fold はエラーをスローします。

ベクトルの和を計算する関数を作成する場合、ベクトルが空のときに関数によって 0 が返されるように、既定値 0 を指定します。

sumVector = @(x) fold(@plus, x, 0);
sumVector([])
ans =
     0

入力引数

すべて折りたたむ

ベクトルのたたみ込みに使用する関数。関数ハンドルとして指定します。

例: @or

たたみ込むベクトル。ベクトル、シンボリック ベクトルまたは cell ベクトルのいずれかとして指定します。v の要素がシンボリック関数の場合、シンボリック関数の式は、formula を呼び出して使用されます。

fold 演算の既定値。数値、ベクトル、行列または多次元配列、あるいはシンボリック数、変数、ベクトル、行列、多次元配列、関数または式として指定します。

バージョン履歴

R2016b で導入

参考

|