乘法矩阵Matlab
问题描述:
我有一个矩阵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总是一样的大小。
答
这是一个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是的,输出尺寸应该小于输入尺寸:-) –
我不明白的算法。当你接近'M'的边缘时会发生什么,就像第5次迭代没有什么可以乘以N(3)一样? – excaza