【问题标题】:Armadillo vector-matrix multiplication犰狳向量矩阵乘法
【发布时间】:2017-03-17 16:34:20
【问题描述】:

是否可以将矩阵乘以(点积)犰狳中的向量? 在我看来,这种库是我们期望的基本操作,所以它应该存在。到目前为止我所有的尝试都失败了:

"matrix multiplication: incompatible matrix dimensions: 1206x36 and 1x1206"
"matrix multiplication: incompatible matrix dimensions: 1206x36 and 1206x1"
"matrix multiplication: incompatible matrix dimensions: 1x1206 and 1206x36"
"matrix multiplication: incompatible matrix dimensions: 1206x1 and 1206x36"

【问题讨论】:

  • 第一个矩阵的第二维应该与第二个矩阵的第一维匹配,对吧? (a x b * b x c)。基于以下行中的错误,这并不成立:第 1、第 2 和第 4
  • 我基本上尝试了所有组合。我了解矩阵向量乘法的工作原理。

标签: c++ armadillo


【解决方案1】:

是的,这是可能的。您能否提供用于产生上述错误的源代码示例?请尝试以下操作,因为它应该可以正常工作。

arma::mat X ;
arma::vec beta ;

beta.resize ( 2 ) ;

beta (0) = 1.0 ;
beta (1) = 3.0 ;

X.resize ( 3, 2 ) ;

X (0,0) = 1.0 ;
X (0,1) = 2.0 ;
X (1,0) = 3.0 ;
X (1,1) = 4.0 ;
X (2,0) = 5.0 ;
X (2,1) = 6.0 ;

std::cout << X * beta << std::endl ;

如果两者都定义为“arma::mat”类型,只要尺寸兼容,它也可以工作。

【讨论】:

    猜你喜欢
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多