【问题标题】:vector changes to matrix at computation向量在计算时更改为矩阵
【发布时间】:2016-03-13 21:38:30
【问题描述】:

这可能是我在某处遗漏的新手错误,但我终生无法在网络上找到与我的问题相关的任何内容。

我有一个大小为5 by 1 的向量b1,我还有另一个向量dsdb1 也是5 by 1

当我写 b1 += tau*dsdb1 时,我收到错误“形状 (5,1) 的不可广播输出操作数与广播形状 (5,5) 不匹配”

现在,这些都不是矩阵。我什至删除了这一行,而是打印了 b1 和 dsdb1 的两种尺寸。对于 b1,它打印 (5,1),对于 dsdb1,它打印 (5,)。 tau 只是一个标量。

为什么计算的时候dsdb1变成了5×5的矩阵?

【问题讨论】:

  • 向量是如何定义的?它是什么对象? numpy 的一部分?
  • 都是 numpy 向量。 b1 最初是随机的。 dsdb1 是通过一个相当长的过程计算的,但以 numpy.sum 结尾,所以是的,我相信两者都是 numpy 向量
  • 你能用它们的类型打印出来吗?
  • dsdb1 it printed (5,) ?
  • 两者都是 numpy.ndarray,刚刚检查过。 b1 是大小 (5,1),dsdb1 是大小 (5,)。不管它是什么意思。是的。它打印了 (5,)。

标签: python python-2.7 matrix vector linear-algebra


【解决方案1】:

我设法通过使用临时变量、将其设置为正确大小并遍历 dsdb1 来修复它。我仍然不知道是什么导致了这个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2015-03-26
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    相关资源
    最近更新 更多