7

ベクトルを使用して、任意の N 次元サーフェスの「畳み込み」を実行しようとしています。より具体的には、N 次 Volterra カーネルの出力を取得しようとしています ( http://www.scholarpedia.org/article/Volterra_and_Wiener_series、eq.1 を参照) 。

したがって、1 次元カーネルの場合、出力は 1 次カーネルと過去の入力エポックの単純なスライディング畳み込みです。基本的に、過去の入力エポックのすべての値を係数で乗算/重み付けします。

2 次カーネル出力は、2 次元行列と信号の「畳み込み」です。このカーネルは、過去のポイントのすべてのペアの積を係数で重み付けします。

3 次元行列である 3 次カーネルは、過去のメモリ エポックのポイントのすべてのトリプレットを重み付けします。

また、事前にカーネルの次元/順序を知りません。入力パラメータです。

いくつかのforループをポイントごとに実行することで、おそらくこれを非常に非エレガントかつゆっくりと実行できることはわかっていますが、matlabでこれを非常に迅速かつエレガントに実行する方法があるかどうか疑問に思っていましたか?

ありがとう

4

1 に答える 1

-1

で変数の次元を確認し、ndims(array)必要な次元で畳み込みを行うことができます。より高い次元で畳み込みを行う必要がある場合は、コマンドで変数を再形成してから、前のコマンドを使用できます。conv()conv2()reshape

于 2014-09-29T10:00:33.403 に答える