给了这张表:
| a | b | c |
|---+---+----+
| 3 | 4 | |
| 1 | 2 | |
| 1 | 3 | |
| 2 | 2 | |
Run Code Online (Sandbox Code Playgroud)
我想得到两列 a 和 b 的点积,结果应该等于 (3*4)+(1*2)+(1*3)+(2*2) 即 21。
我不想使用笨拙的公式,(B1*B2+C1*C2+D1*D2+E1*E2)因为实际上我有一张大表等待计算。
我知道 emacs 的 Calc 工具有一个“vprod”功能可以做这些事情,但我不知道如何将整列转换为向量。
谁能告诉我如何完成这项任务,不胜感激!
在 emacs-calc 中,2 个向量的简单乘积计算点积。
这是有效的(我把结果放在@6$3; 括号也可以省略):
| a | b | c |
|---+---+----|
| 3 | 4 | |
| 1 | 2 | |
| 1 | 3 | |
| 2 | 2 | |
|---+---+----|
| | | 21 |
#+TBLFM: @6$3=(@I$1..@II$1)*(@I$2..@II$2)
Run Code Online (Sandbox Code Playgroud)
@I并@II从第一个 hline 跨越到第二个 hline。