2015-12-21 188 views
0

我有一个矩阵M [1,98]和矩阵N [1,x],我们假设在这种情况下x = 16。 我想要的是将N乘以M,使得按元素求和,并且递增矩阵M.以得到[1,98]的输出的最终性。乘法矩阵Matlab

这有点令人困惑。一个例子:

M=[2 3 4 5 6 7] 
N=[1 2 3] 

it1=(2*1)+(3*2)+(4*3)+(5*0)+...=20 
it2=(3*1)+(4*2)+(5*3)+(6*0)+...=26 
it3=.. 

Output=[20 26 ... ... ... ...] 

像这样,直到结束,但考虑矩阵N变量的大小。 M总是一样的大小。

+1

我不明白的算法。当你接近'M'的边缘时会发生什么,就像第5次迭代没有什么可以乘以N(3)一样? – excaza

回答

8

这是一个convolution

result = conv(M, N(end:-1:1), 'valid'); 

达到你想要你需要翻转第二向量并保持卷积(无边框效果)的只有“有效”的部分结果。

在您的例子:

>> M = [2 3 4 5 6 7]; 
>> N = [1 2 3]; 
>> result = conv(M, N(end:-1:1), 'valid') 
result = 
    20 26 32 38 
+1

我猜他不相信自己的要求;) – excaza

+1

@excaza是的,输出尺寸应该小于输入尺寸:-) –