[英]How to compute only the diagonal of a matrix product in Octave?
Octave有没有办法只计算和存储矩阵乘积的对角线?
基本上喜欢做: vector = diag(A*B);
我不关心A*B
任何值,除了对角线上的值。 矩阵大小约为80k x 12
和12 x 80k
,所以即使我不关心速度/额外内存它也不适合RAM。
奇怪的是,因为Octave是一个包含大量数据集和对角线的包非常重要,所以它应该是可能的。
对角线中的第一个元素是A的第一行和B的第一列的标量乘积。对角线中的第二个元素是A的第二行和B的第二列的标量积。
换一种说法:
vector = sum(A.*B',2);
这是你在MATLAB中做到的方法(可能类似于Octave语法):
vector = sum(A.*B',2);
这将仅计算操作A*B
的结果对角线作为列向量vector
。
实际上我认为它是A的第一行与第一列 B的点积...第二对角元素是第二行和第二列的点积......等等
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.