犰狳向量矩阵乘法

Posted

技术标签:

【中文标题】犰狳向量矩阵乘法【英文标题】: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 我基本上尝试了所有组合。我了解矩阵向量乘法的工作原理。 【参考方案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”类型,只要尺寸兼容,它也可以工作。

【讨论】:

以上是关于犰狳向量矩阵乘法的主要内容,如果未能解决你的问题,请参考以下文章

犰狳复矩阵乘法早期逼近

犰狳:矩阵乘法精度损失

向量矩阵乘法、浮点向量、二进制矩阵

向量乘法(矩阵乘法)奇数输出的向量

GLM的向量矩阵乘法行为?

矩阵和向量的乘法顺序