matlab中N维曲面与向量的卷积



我正在尝试用向量对任意N维曲面进行"卷积"。更具体地说,我正在尝试获得N阶Volterra内核的输出(请参见http://www.scholarpedia.org/article/Volterra_and_Wiener_series,eq.1)

因此,对于一维核,输出是一阶核与过去输入历元的简单滑动卷积。它本质上用一个系数乘以/加权过去输入历元中的每个值。

二阶核输出是2d矩阵与信号的"卷积"。这个核对过去每一对点与一个系数的乘积进行加权。

三阶核是一个三维矩阵,它对过去记忆时期中的每三个点进行加权。

此外,我还不知道内核的大小/顺序。这是一个输入参数。。

我知道我可能可以通过一点一点地进行几个for循环来非常不合法、缓慢地完成这项工作,但我想知道是否有一种方法可以在matlab中非常快速、优雅地做到这一点?

感谢

您可以用ndims(array)检查变量的维度,并对所需的维度进行卷积:一维和二维分别为conv()conv2()。如果需要在更高维度上进行卷积,可以使用reshape命令重塑变量,然后使用前面的命令。

最新更新