查看单个帖子
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何仅在八度中计算矩阵乘积的对角线?

在Octave中,是否可以仅计算和存储矩阵乘积的对角线?

基本上像这样: vector = diag(A*B);

除了对角线上的值,我不在乎A*B任何值。矩阵大小约为80k x 12和12 x 80k ,因此,即使我不在乎速度/额外的内存,它也根本无法放入RAM。

奇怪,因为Octave是用于存储大量数据的程序包,对角线非常重要,因此应该有可能。



回答:

对角线上的第一个元素是A的第一行与B的第一列的标量积。对角线上的第二个元素是A的第二行与B的第二列的标量积。

换一种说法:

vector = sum(A.*B',2);

更多&回答...
poster 当前离线   回复时引用此帖