<org manual>翻译--3.5.2 Calc的公式语法

本文深入探讨了Emacs Calc的公式语法及其在实际应用中的操作技巧,包括优先级处理、变量替换、区域变量使用、选项模式配置、精度调整、逻辑运算等功能。详细介绍了如何利用这些特性进行高效计算,特别强调了公式格式、结果显示方式以及如何通过自定义格式说明字符串对结果进行重新格式化。

3.5.2 Calc的公式语法 :使用Calc计算

一个公式可用是任何能够被Emacs的'calc'包所识别的代数表达式. 注意,在'Calc'中,'/'的操作符优先级要比'*'低,因此'a/b*c'会被解释为'a/(b*c)',这一点与标准不符. 在calc-eval(参见GNUEmacs Calc Manual中'Calling Calc from Your Lisp Programs'章节的)进行计算之前,变量替换会以之前所描述的方式发生. 公式之中的区域变量可用直接放入Calc的向量函数(例如'vmean'和'vsum')中作为参数使用.

公式可用在分号之后附加上可选的选项模式字符串. 这种选项模式字符串由标志所组成,这些标志会在公式被执行时影响Calc和其他模式. 默认情况下,Org使用标准的Calc模式(精度为12位,角度单位为度,分数和symbolic模式为关闭状态). 然而,公式在显示时,会自动调整为(float 8)以便保持表格的紧凑. 可用通过变量'org-calc-default-modes'来配置这些默认设置

p20           set the internal Calc calculation precision to 20 digits
n3 s3 e2 f4   Normal, scientific, engineering, or fixed
              format of the result of Calc passed back to Org.
              Calc formatting is unlimited in precision as
              long as the Calc calculation precision is greater.
D R           angle modes: degrees, radians
F S           fraction and symbolic modes
N             interpret all fields as numbers, use 0 for non-numbers
E             keep empty fields in ranges
L             literal

除非你使用大整数或高精度计算式,并且需要显示浮点式数字,你可以提供一个printf格式说明字符串32来对Calc计算并传回Org的结果进行重新格式化,而不是Calc自己作这种格式化. 下面是一些例子

$1+$2                Sum of first and second field
$1+$2;%.2f           Same, format result to two decimals
exp($2)+exp($1)      Math functions can be used
$0;%.1f              Reformat current cell to 1 decimal
($3-32)*5/9          Degrees F -> C conversion
$c/$1/$cm            Hz -> cm conversion, using ‘constants.el’
tan($1);Dp3s1        Compute in degrees, precision 3, display SCI 1
sin($1);Dp3%.1e      Same, but use printf specifier for display
vmean($2..$7)        Compute column range mean, using vector function
vmean($2..$7);EN     Same, but treat empty fields as 0
taylor($3,x=7,2)     Taylor series of $3, at x=7, second degree

Calc还包含了一个完整的逻辑操作集合. 例如

if($1<20,teen,string(""))            如果第一列(age列)比20小,则返回值"teen",否则返回空值

注意,在计算时长时,还可以使用两个特定的标志T和t,具体参见时长与时间


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值