Dan*_*Dan 7 matlab signal-processing convolution multidimensional-array
我试图用矢量做任意N维表面的"卷积".更具体地说,我试图得到一个N阶Volterra内核的输出(参见http://www.scholarpedia.org/article/Volterra_and_Wiener_series,eq.1)
因此,对于1维内核,输出是1阶内核与过去输入时期的简单滑动卷积.它基本上将过去输入时期中的每个值与系数相乘/加权.
二阶内核输出是带有信号的二维矩阵的"卷积".该内核将过去每对点的乘积与系数进行加权.
三阶内核,一个3d矩阵,衡量了过去记忆时代中每一点的三重点.
另外,我之前不知道内核的维度/顺序.这是一个输入参数..
我知道我可以通过逐个循环执行几个for循环来非常非常缓慢地做这个,但我想知道是否有一种方法可以在matlab中快速而优雅地完成这项工作?
谢谢
您可以使用 , 检查变量的维度ndims(array),并在所需维度上进行卷积:conv()或conv2()分别针对一维和二维。如果需要在更高维度上进行卷积,可以使用该reshape命令重塑变量,然后使用前面的命令。
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |