我有一条直线(x1,y1)和(x2,y2).我想看看点(x3,y3)是否位于所述线的"左"或"右".我该怎么办?
Mac OS X 10.7.2上的Mathematica 8.0.1执行此操作:退出内核并执行
MathieuS[MathieuCharacteristicA[ 1, -(1/4)], -0.25`, 15.707963267948966`]
MathieuS[MathieuCharacteristicA[ 1, -(1/4)], -0.25`, 15.707963267948966`]
(*
5.10119 10^-15
MathieuS[MathieuCharacteristicA[1, -(1/4)], -0.25, 15.708]
*)
Run Code Online (Sandbox Code Playgroud)
也就是说,它第一次对表达式进行数值计算,而第二次返回未评估的表单.
为什么?或者我只是花了太长时间盯着我的屏幕而且做了一些愚蠢的事情?
我有个问题.我的公司给了我一项非常无聊的任务.我们有两个对话框数据库.其中一个数据库包含可怕质量的图像,另一个非常高质量.
不幸的是,可怕质量的对话包含了对其他信息的重要映射.
我的任务是,手动,浏览所有不良图像并将它们匹配到好的图像.
是否有可能在任何程度上自动化这个过程?以下是两个对话框(从Google图像中随机抽取)的示例:
所以我目前正在尝试用C#编写一个程序来从数据库中提取这些照片,循环浏览它们,找到具有常见形状的照片,并返回它们的ID.我最好的选择是什么?
我有数字,从0到8.我想在结果中,所有可能的那些数字组,每组应该使用所有数字,每个数字只能在一组中出现一次.
我想在PHP中看到可以打印出结果的解决方案.或者,至少,我想在组合学理论上有一些更新,因为我早就忘记了它.计算有多少排列的公式是什么?
示例集:
可以使用以下结构在Mathematica中实现有限形式的Currying:
f[a_][b_][c_] := (a^2 + b^2)/c^2
Run Code Online (Sandbox Code Playgroud)
允许一个人做,例如:
f[4][3] /@ Range@5
Run Code Online (Sandbox Code Playgroud)
{25, 25/4, 25/9, 25/16, 1}
有一个问题:Attributes
只适用于第一个(一组)参数.考虑:
ClearAll[f]
SetAttributes[f, HoldAllComplete]
f[a_][b_][c_] :=
{ToString@Unevaluated@a,
ToString@Unevaluated@b,
ToString@Unevaluated@c}
f[2 + 2][ 8/4 ][3 + 5]
Run Code Online (Sandbox Code Playgroud)
{"2 + 2", "2", "8"}
我的意图是返回"8 / 4"
,并"3 + 5"
在列表中.
所以:
有没有办法将属性扩展到此构造?
是否有其他方便的结构来实现这一目标?
除了属性之外,还有其他方法可以扩展Mathematica中的Currying吗?
有多种的Internal`
情况下的功能是有用的,如InheritedBlock
,Bag
和StuffBag
等,以及许多有用Developer`
的功能.
我希望公开这些符号的选择,以便可以在没有上下文名称的情况下明确地解决它们,但我不想通过添加Internal`
和Developer`
来公开所有这些符号$ContextPath
.
我可以使用代理符号,Bag = Internal`Bag
但这既不干净也不完全正确,因为它是一个引用,例如属性不会被继承.
有没有办法有选择地暴露我想要的符号,而不是诉诸上面的kluge?
在32位操作系统下,分配给任何一个程序的最大内存有限,Mathematica优雅地终止内核并返回最大内存分配错误.
然而,在64位操作系统上,Mathematica将自由使用所有可用内存并使系统停止运行.因此,限制内存使用的正确方法是什么?可以使用MemoryConstrained
组合$Pre
或CellEvaluationFunction
但我不想为此目的绑定其中任何一个,或者必须修改现有用途以合并此功能.
是否存在另一种全局限制内存使用的方法,例如内核标志或系统$ Option?
通常在PHP中,我看到:
$result = mysql_query($query) or die();
Run Code Online (Sandbox Code Playgroud)
来自python,我知道为什么这应该工作,因为or
如果在布尔上下文中为真,则返回第一个值,否则返回第二个值(请参阅此).
但是当我在另一个上下文中尝试PHP中的上述技术时,例如:
$name = "John Doe";
echo $name or "Anonymous";
Run Code Online (Sandbox Code Playgroud)
在or
不返回的第一个值("张三"),则返回1.
为什么这在mysql_query()结果案例中有效,但在其他情况下却没有?在mysql_query()情况下使用是否不好(忽略我没有向用户返回有用错误的事实)?
导出到动画gif似乎在Mathematica 8.0.1中已经改变了?
我通常只需编写一个动画的动画GIF:
v=Manipulate[....]
then Export["foo.gif",v];
Run Code Online (Sandbox Code Playgroud)
但现在它不起作用.我只得到一个静态图像.
这是一个例子:
v=Manipulate[
Text[t],
{{t,4,"start"},0,10,1,ControlType->Trigger,AnimationRate->1,AnimationRepetitions->10}
]
Run Code Online (Sandbox Code Playgroud)
现在Export["foo.gif",v]
只生成静态图像,因为没有运行.
但是Export["foo.avi",v]
有效,它确实会产生一个正在运行的avi电影.
此外,我曾经使用过动画GIF选项,但现在不支持:
Export["foo.gif",v,ConversionOptions->{"AnimationDisplayTime"->0.5,"Loop"->True},ImageSize->{500,500}]
Export::convoptobs: ConversionOptions is obsolete.
Run Code Online (Sandbox Code Playgroud)
当我去帮忙时,我没有看到GIF的选项.如何控制动画延迟等?
我以为有人在这里可能有个主意.
谢谢 - 纳瑟