Chr*_*s H 14 matlab matrix octave matrix-multiplication diagonal
Octave有没有办法只计算和存储矩阵乘积的对角线?
基本上喜欢这样做: vector = diag(A*B);
我不关心A*B除了对角线上的任何值.矩阵大小是围绕80k x 12和12 x 80k,所以即使我不关心速度/额外的内存它只是惯于适合在RAM中.
奇怪的是,因为Octave是一个包含大量数据集和对角线的包非常重要,所以它应该是可能的.
Jon*_*nas 19
对角线中的第一个元素是A的第一行与B的第一列的标量乘积.对角线中的第二个元素是A的第二行和B的第二列的标量积.
换一种说法:
vector = sum(A.*B',2);
Run Code Online (Sandbox Code Playgroud)
这是你在MATLAB中做到的方法(可能类似于Octave语法):
vector = sum(A.*B',2);
Run Code Online (Sandbox Code Playgroud)
这将仅计算操作的结果对角线A*B作为列向量vector.
| 归档时间: |
|
| 查看次数: |
7913 次 |
| 最近记录: |