问题标签 [wolfram-mathematica]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wolfram-mathematica - Mathematica 减值 Lhs
有谁知道 Mathematica 中是否有一个内置函数来获取降值规则的 lhs(没有任何持有)?我知道如何编写代码来做到这一点,但对于内置
例如:
BuiltInIDoNotKnowOf[a]
返回{1,2}
command-line - 从命令行调用 Mathematica 程序,使用命令行参数、标准输入、标准输出和标准错误
如果您在 foo.m 中有 Mathematica 代码,则可以使用-noprompt
和-initfile foo.m
(or -run "<<foo.m"
) 调用 Mathematica,并且可以使用命令行参数$CommandLine
(其中包含额外的垃圾),但是有没有办法只使用一些 mathematica 代码,例如
和 chmod 它可执行并运行它?换句话说,如何像使用任何其他脚本语言(Perl、Python、Ruby 等)一样使用 Mathematica?
loops - Mathematica 中的 ForEach 循环
我想要这样的东西:
或者,更一般地,解构您正在循环的列表中的任意内容,例如:
通常,您希望使用Map
或其他纯函数式构造,并避免使用副作用的非函数式编程风格。但这里有一个例子,我认为 for-each 结构非常有用:
假设我有一个将符号与表达式配对的选项(规则)列表,例如
现在我想制作一个哈希表,在其中将这些符号明显映射到这些数字。我认为没有比这更清洁的方法了
额外的测试用例
在这个例子中,我们转换了一个变量列表:
在上述之后,{a,b,c}
应评估为{f[1],f[2],f[3]}
。请注意,这意味着each
如果它是一个列表,则它的第二个参数应该不被评估。
如果未计算的形式不是列表,它应该计算第二个参数。例如:
那应该打印 和 的b
值c
。
附录:为了正确地做for-each,它应该支持Break[]
和Continue[]
。我不确定如何实现。也许它需要以某种方式用 For、While 或 Do 来实现,因为这些是唯一支持Break[]
and的循环结构Continue[]
。
到目前为止,答案的另一个问题是:他们吃Return[]
s。也就是说,如果您在函数中使用 ForEach 循环并希望从循环内从函数返回,则不能。在 ForEach 循环内发出 Return 似乎像Continue[]
. 这只是(等待它)让我陷入了循环。
image-processing - 在没有 X11 的机器上将绘图导出为 Mathematica 中的图像(即,不涉及前端)
考虑以下带有内核命令行界面的对话框:
这在具有以下错误的机器上运行良好,但在具有以下错误$Version = 6.0 for Linux x86 (32-bit) (June 2, 2008)
的机器上失败:$Version = 7.0 for Linux x86 (64-bit) (November 11, 2008)
我能想到的任何其他图像格式都有类似的错误。
所以问题是,我怎样才能让没有前端的 Mathematica 内核导出图像?为什么它可以在 Mathematica 6.0 中顺利运行?如果上面的示例在版本 7 中适用于您,请告诉我!
PS:版本 7 引入了该功能UsingFrontEnd
,但失败了
大概是因为机器上没有安装X11。
附录
事实证明,在这方面,版本 6 和版本 7 没有区别。相反,在版本 6 的机器上,前端被静默调用。另一台机器的问题,正如这个问题的答案所表明的那样,是没有 X 服务器,因此无法调用前端。
math - 由空间中两点之间的弧长参数化的螺旋方程
由空间中任意两点之间的弧长(即弧长的函数)参数化的螺旋方程是什么?有什么功能吗?我如何使用 matlab 或 mathematica 实现相同的功能?
computer-science - 抽象代数和编程
我要开始学习抽象代数——群、环等。我有兴趣了解任何编程语言,如果有的话可以帮助我学习/尝试我在理论上学到的概念。
编辑:我并没有真正考虑实施我学到的东西。我很想知道任何已经支持它们的语言。
regex - Mathematica StringReplace 替换包含换行符的子字符串
我在字符串中有如下内容:
我想这样做(perl 语法): s/BEGINIGNORE.*ENDIGNORE//s - 即去掉BEGINIGNORE 和ENDIGNORE 之间的所有内容,包括在内。您会认为以下内容会在 Mathematica 中执行此操作:
但事实并非如此。我如何在 Mathematica 中做到这一点?
PS:我定义了以下别名: re = RegularExpression;
wolfram-mathematica - FactorInteger 的替代形式?(数学)
在数学中
分配
到一个。现在,我希望扩展每个列表,而不是带有指数的因子。上面的分解将变成
我写了以下函数:
但如果你问我,它看起来很丑。肯定必须有一种更简洁的方法来实现这一目标吗?
java - Mathematica 的“禁用动态”对话框杀死了 Java
我将 Mathematica 与 JLink 一起用于一个涉及大量计算的研究项目。Mathematica 用作输入参数和绘制结果的图形前端。实际算法位于通过 JLink 调用的 Java 类中。
“链接”是一个名为 evalFrontend 的实例。在按下按钮时,会执行如下操作:
如果计算需要超过 10 秒,则会显示一个对话框:
Abort Dynamic:内核不响应动态评估。您可以选择中止并重新启动内核或继续等待。[..]
显示此内容时,Java 仍在运行。但是,再过一段时间,会显示另一个对话框:
禁用动态:一个或多个动态对象需要很长时间才能完成评估。您可以禁用进一步的动态评估或继续等待[...]
当这出现时,Java 进程被终止。
我怎样才能防止这种情况发生?任何提示将不胜感激。
wolfram-mathematica - 在 Mathematica 中设置环境变量
我需要从 Mathematica 笔记本设置环境变量。
给出变量的值。但是也可以设置变量吗?