将逻辑 true/false 转换为数字 1/0?
converting logical true/false to numeric 1/0?
在大多数语言中,我可以直接将逻辑真值乘以某个数值,或者至少有一些简单的函数可以将布尔类型转换为某种特定类型,例如 int 或 double。通常,这很容易,因为 "true" 或 "false" 只是数字 1 或 0 的别名。
但在 Maxima 中没有。
而且我也找不到任何将逻辑值转换为数字的嵌入式函数。有没有?
例如,如何对函数进行条件屏蔽?
F(x,param):=condition(x,param)*f(x)
,其中条件 returns 逻辑值,如 (x>param)->true/false
?
例如你可以写(if x > param then 1 else 0)*f(x)
。
也可以写成charfun(x > param)*f(x)
。参见 ? charfun
。
在大多数语言中,我可以直接将逻辑真值乘以某个数值,或者至少有一些简单的函数可以将布尔类型转换为某种特定类型,例如 int 或 double。通常,这很容易,因为 "true" 或 "false" 只是数字 1 或 0 的别名。
但在 Maxima 中没有。
而且我也找不到任何将逻辑值转换为数字的嵌入式函数。有没有?
例如,如何对函数进行条件屏蔽?
F(x,param):=condition(x,param)*f(x)
,其中条件 returns 逻辑值,如 (x>param)->true/false
?
例如你可以写(if x > param then 1 else 0)*f(x)
。
也可以写成charfun(x > param)*f(x)
。参见 ? charfun
。