【问题标题】:Multiplying matrix Matlab乘法矩阵 Matlab
【发布时间】:2015-12-21 23:53:29
【问题描述】:

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

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

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 的大小始终相同。

【问题讨论】:

  • 我不懂算法。当你接近 M 的边缘时会发生什么,比如第 5 次迭代,其中没有什么可以乘以 N(3)

标签: matlab matrix


【解决方案1】:

那是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

【讨论】:

  • 我猜他不相信自己的要求;)
  • @excaza 是的,输出大小应该小于输入大小:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-09
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多