如何计算两列的点积(将整列视为向量)?

sag*_*han 4 org-mode

给了这张表:

| 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”功能可以做这些事情,但我不知道如何将整列转换为向量。

谁能告诉我如何完成这项任务,不胜感激!

Jua*_*cho 5

在 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。