相关疑难解决方法(0)

您的Mathematica工具包里有什么?

我们都知道Mathematica很棒,但它也经常缺乏关键功能.您在Mathematica中使用哪种外部包/工具/资源?

我将编辑(并邀请任何其他人也这样做)这个主要帖子包括专注于科学研究的一般适用性的资源,并且尽可能多的人会觉得有用.随意贡献任何东西,甚至是小代码片段(正如我在下面做的时间例程).

此外,在Mathematica 7及其他您发现自己,或从一些纸张/网站挖出的无证和有用的功能是非常受欢迎的.

请提供简短描述或评论为什么有什么好东西或它提供的实用程序.如果您使用会员链接链接到亚马逊上的书籍,请提及它,例如,在链接后面加上您的姓名.


包:

  1. LevelScheme是一个大大扩展Mathematica生产美观图的能力的软件包.我使用它,如果没有其他任何东西,那么对框架/轴刻度的大大改进控制.它的最新版本称为SciDraw,它将在今年的某个时候发布.
  2. David Park's Presentation Package(50美元 - 免费更新)
  3. Jeremy Michelson的grassmannOps软件包提供了使用Grassmann变量和具有非平凡换向关系的算子进行代数和微积分的资源.
  4. 约翰·布朗(John Brown)GrassmannAlgebra与格拉斯曼(Grassmann)和克利福德代数(Clifford algebras)合作的包和书.
  5. RISC(符号计算研究所)提供各种Mathematica(和其他语言)包可供下载.特别是,有自动定理证明的Theorema,以及Algorithmic Combinatorics小组软件页面中用于符号求和,差分方程等的多个包.

工具:

  1. MASH是Daniel Reeves出色的Perl脚本,主要为Mathematica v7提供脚本支持.(现在-script可以选择使用Mathematica 8制作.)
  2. 一个alternate Mathematica shell与GNU的readline输入(使用python,*nix中只)
  3. ColourMaths包允许您直观地选择表达式的各个部分并对其进行操作.http://www.dbaileyconsultancy.co.uk/colour_maths/colour_maths.html

资源:

  1. MathSource对于各种应用程序,Wolfram自己的存储库有很多有用的缩小笔记本.另请参阅其他部分,例如

  2. 数学维基教科书.

图书:

  1. Mathematica编程: Leonid Shifrin(web,pdf)的高级介绍是必读的,如果你想在Mathematica中做更多的For循环.我们很高兴在Leonid这里回答问题.
  2. 使用Mathematica量子方法作者:James …

resources wolfram-mathematica

149
推荐指数
22
解决办法
3万
查看次数

如何定义Manipulate控件变量定义的一部分以减少代码重复

这与这个问题有点关系

在Mathematica中将控制定义为变量

但是上面的问题没有回答我的问题,因为它讨论了完整的控制定义.(我也尝试过那里展示的一些技巧,但它们对我的问题不起作用).

我现在只询问部分控件的定义.(使用这种论坛格式也很难跟进一个老问题.因为使用微小的评论区域,很难提出更多的问题,并且更像是在询问空间较大的新问题时,可以粘贴代码和图片).

我所做的所有尝试都不起作用.我将从简单的例子开始解释这个问题.

假设有人想写

Clear["Global`*"];

Manipulate[Plot[f*g, {x, -1, 1}],
 Grid[{
   {Style["f(x)="], 
    PopupMenu[Dynamic[f], {x, x^2, x^3}, ImageSize -> Tiny]},{Style["g(x)="], 
    PopupMenu[Dynamic[g], {x, x^2, x^3}, ImageSize -> Tiny]}
   }]
 ]
Run Code Online (Sandbox Code Playgroud)

您可以看到每个控件定义中都存在重复的代码重复.(像ImageSize,Spacings->和许多其他装饰设置之类的东西会反复重复每个控件.

在此输入图像描述

如果我能写出类似的东西,那会是多么美好的事情

Manipulate[Plot[f*g, {x, -1, 1}],
 Grid[{
   {Style["f(x)="], PopupMenu[Dynamic[f], Evaluate@Sequence@v]},
   {Style["g(x)="], PopupMenu[Dynamic[g], Evaluate@Sequence@v]}
   }],

 Initialization :>
  (
   v = {{x, x^2, x^3}, ImageSize -> Tiny}
   )
 ]
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我在上面的那一行尝试了许多其他的东西,没有任何作用.喜欢

{Style["f(x)="], PopupMenu[Dynamic[f], v]},
Run Code Online (Sandbox Code Playgroud)

{Style["f(x)="], PopupMenu[Dynamic[f], Evaluate@v]}
Run Code Online (Sandbox Code Playgroud)

Manipulate[Plot[f*g, {x, -1, 1}],

 {{v, {{x, x^2, x^3}, ImageSize -> Tiny}}, None},
 Grid[{
   {Style["f(x)="], PopupMenu[Dynamic[f], …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

12
推荐指数
2
解决办法
2133
查看次数

任何在需要的点之间在行之间添加分隔符的技巧

要在网格中的行之间添加分隔符,我知道如何操作的一种方法是使用该Dividers选项.但是最后会使用它,然后必须知道分隔符需要在其下面的行号.因此,对于大型网格,我发现自己使用反复试验,直到找到正确的行号.然后,当我稍后更改网格时,我必须再次进行试验和错误,以便将分隔符放在正确的位置,以防它在我的更改后移动.

在这个例子中,有一个有3行的网格,我想在第二行下面添加分隔符,所以我可以这样做:

Grid[{
  {1},
  {2},
  {3}
  }, Frame -> True, Dividers -> {All, 3 -> True}]
Run Code Online (Sandbox Code Playgroud)

另一种方法,是把FalseTrue以正确的顺序,我希望有一个分频器,这样

Grid[{
  {1},
  {2},
  {3}
  }, Frame -> True, Dividers -> {All, {True, False, True, True}}]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果我可以做这样的事情会很好(就像人们可以为Manipulate做的那样)(当然下面这里不起作用)

Grid[{
  {1},
  {2},
  Delimiter,
  {3}
  }, Frame -> True]
Run Code Online (Sandbox Code Playgroud)

要么

Grid[{
  {1},
  {Item[2,Dividers->True]},
  {3}
  }, Frame -> True]
Run Code Online (Sandbox Code Playgroud)

或者这样的事情.

它将使代码维护更容易.

我看过使用Item等等,但是无法弄明白.

有谁知道这样做的伎俩?

编辑:

顺便说一下,如果可能,这个技巧不仅适用于分频器.但是,能够执行许多其他网格选项(现在在网格级别完成)也可以在项目级别完成.例如,如果我想在某一行之后添加额外的空格,那么按照我想要的速度更容易说出来.此外,如果我想更改项目大小,更容易在现场执行,对于Spacings等也是如此.因此,当移动/复制整行或项目的代码时,它是自包含的并将其全部复制选项在一起.

我想现在这可能需要一个新选项添加​​到Mathematica网格,以使其正常工作并与所有网格设计保持一致.

这是为Mathematica制作GUI构建器之前的全部内容.

我发现当我编写演示程序时,我花费了超过60%的时间来使GUI适合并且看起来正确.使用GUI构建器,我可以花时间处理算法.当我使用Matlab GUIDE制作GUI时,我花费不到5%的时间来制作类似的GUI.

我希望WRI能够为Mathematica制作一个GUI构建器,我想如果你问我,这将成为Mathematica的杀手级应用程序.但没有人问我:)

编辑(2)

评论下面的先生精灵解决方案.
我主要想要这个功能用于我用来布局控件的网格Manipulate.这是一个简单的例子:

Manipulate[x,

 Grid[{
   {Control[{{x, 0, "x"}, 0, 10, …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

5
推荐指数
1
解决办法
598
查看次数

标签 统计

wolfram-mathematica ×3

resources ×1