小编Yar*_*tov的帖子

Mathematica 8.0中的新图表

  1. 有没有人想出一种方法来修改Mathematica 8中的Graph对象?特别是,如何获得右键单击图表时获得的相同功能.

  2. 一些新的图形函数冲突Combinatorica,有没有办法强迫Mathematica使用函数的内置版本?换句话说,有没有办法CompleteGraph在我Needs["Combinatorica"]输入Combinatorica版本之后获得内置的访问权限CompleteGraph

为了澄清1,Graph上的Context Menu允许您更改GraphStyle和GraphLayout,我希望能够以编程方式更改它们.这是我发现改变Graph对象GraphStyle的一种方法

g = GridGraph[{4, 4}];
BooleanGraph[Or, g, g, GraphStyle -> "DiagramBlack"]
Run Code Online (Sandbox Code Playgroud)

但是,这会忘记原始图形的选项 VertexCoordinates

在网格图上尝试Brett的食谱

g = GridGraph[{3, 2}, ImageSize -> Tiny]
coords = PropertyValue[{g, #}, VertexCoordinates] & /@ VertexList[g];
Graph[EdgeList[g], GraphStyle -> "BasicGold", 
 VertexCoordinates -> coords, ImageSize -> Tiny]
Run Code Online (Sandbox Code Playgroud)

http://yaroslavvb.com/upload/save/mathematica-change-style.png

Mathematica如何在图形操作上处理图形坐标似乎存在一个错误.下面第一行置换坐标,第二行给出内部警告,可能与坐标有关.对每个顶点使用非整数顶点和显式坐标没有帮助.一种解决方案是全局存储坐标,并具有在修改后fixCoordinates重新分配正确坐标的功能Graph

VertexDelete[GridGraph[{3, 3}], 1]
NeighborhoodGraph[VertexDelete[GridGraph[{3, 3}], 1], 2]
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

8
推荐指数
1
解决办法
1389
查看次数

模式匹配不等式

我想从不等式的实例中提取参数.以下不起作用,任何想法为什么以及如何解决它?

Inequality[1, Less, x, Less, 2] /. Inequality[a_, _, c_, _, e_] -> {a, c, e}

wolfram-mathematica

7
推荐指数
1
解决办法
234
查看次数

TreeForm没有重叠

我有时遇到TreeForm中的标签因重叠而无法读取的问题.下面是一个例子,任何人都可以看到摆脱重叠的方法吗?

{{4, 5, 6}, {{{2, 4, 5, 6}, {{{1, 2, 4}, {}}, {{2, 3, 6}, {}}}}, {{4, 
     5, 6, 8}, {{{4, 7, 8}, {}}, {{6, 8, 9}, {}}}}}} // TreeForm

http://yaroslavvb.com/upload/treeform1.png

Belisarius的解决方案有助于重叠,但丢失工具提示,即与之比较

TreeForm[Hold[
  GraphPlotHighlight[edges : {((_ -> _) | {_ -> _, _}) ...}, 
    hl : {___} : {}, opts : OptionsPattern[]] := 
   Module[{verts, coords, g, sub}, 5]]]

http://yaroslavvb.com/upload/mathematica-tooltip.png

回答更新11/12 我最终使用下面的代码(belisarius'代码带有小修正)

myTreeForm[exp_] := 
  Module[{tooltipText, i}, 
   tooltipText = 
    Cases[Cases[MakeBoxes[TreeForm@exp, StandardForm], 
      TooltipBox[x__] -> x, 7, Heads -> True], 
     TagBox[x__, y__] -> DisplayForm[First@{x}], …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica graph

7
推荐指数
1
解决办法
449
查看次数

仅评估表达式中的特定头部类型?

我记得看到一个表达式来表达并评估每个匹配模式x的头部,同时保留子表达式与非匹配头部的未评估.我再也找不到这个食谱了,有谁知道这样做的正确方法?

wolfram-mathematica

7
推荐指数
1
解决办法
138
查看次数

检测DownValue/OwnValue冲突

偶尔我遇到以下情况 - 一个程序使用全局函数f[x]进行一些计算,同时另一个程序f=5将所有后续调用f[x]转换为5[x]

我知道本地化变量,但我更喜欢在开发早期使用全局变量.

我想不出将OwnValues和DownValues混合的正当理由.当上述情况发生时,有没有办法实施警告信息?

除了以下提示之外,还可以在Cell Options/Evaluation Options/CellContext下的OptionsInspector中找到默认上下文

wolfram-mathematica

7
推荐指数
1
解决办法
146
查看次数

将`GatherBy`转换为不同的列表

我有listAlistB相同的大小.我做GatherBylistA,这是重排列表.应用相同重排的优雅方法是什么listB

例如

listA = {1, 2, 3};
listB = {a, b, c};
listA1 = GatherBy[{1, 2, 3}, OddQ];
Run Code Online (Sandbox Code Playgroud)

listB1 应该成为 {{a, c}, {b}}

更新 感谢有趣的想法,我最终做了类似于belisarius的事情.这让我想起了Python的"decorate-sort-undecorate"模式

decorated = Thread[{listA, listB}];
grouped = GatherBy[decorated, OddQ[First[#]] &];
listB1 = Map[Last, grouped, {2}]
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

7
推荐指数
1
解决办法
316
查看次数

将公式插入图中

插入公式的标准方法是Plot什么?

我的情节如下.我希望将图表的公式很好地格式化并插入到图中.TraditionalForm看起来不错,但它把公式放在一行,而我想要一个两行分数.

Plot[{1, (\[CapitalDelta] - 1)^(\[CapitalDelta] - 
   1)/(\[CapitalDelta] - 2)^\[CapitalDelta]}, {\[CapitalDelta], 3, 6},
  PlotRange -> {0, 4}, PlotStyle -> {Dashing[.02], Thick}, 
 AxesLabel -> {"\[CapitalDelta]", "\[Lambda]"}]
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

7
推荐指数
2
解决办法
1685
查看次数

具有超时的多个子进程

我正在使用依赖于SIGALRM来设置警报中断的配方 - 使用带有超时的模块"子进程 "

问题是我有多个Python脚本使用signal.ALARM进程来设置超时,并且只调用最新的警报.有什么好方法可以改善这些多个Python函数设置超时?

python signals

7
推荐指数
1
解决办法
1203
查看次数

将符号转换为字符串而不进

如何使其toStr[list]获取符号列表并将其作为字符串返回?我想a=1;toStr[{a}]{"a"}

更新03/02:Leo的配方有效,也是为了制作一个版本,它采用序列而不是列表SetAttribute[toStr2,HoldAll];toStr2[a__]:=toStr[{a}]

wolfram-mathematica

6
推荐指数
1
解决办法
330
查看次数

用于Emacs python-mode的自定义Python shell

在Emacs的python-mode中用常规python shell替换常规/ usr/bin/python需要什么?

基本上我有一个二进制文件/ usr/bin/mypython,它在启动python interpreter提示符之前进行一些初始化,并且出于所有交互目的,生成的解释器shell等同于/ usr/bin/python.

但是,如果我在"python-python-command"中指定这个二进制文件(在Emacs 23.3中使用python.el),我会得到"只支持Python版本> = 2.2且支持<3.0"

python emacs

6
推荐指数
1
解决办法
1332
查看次数

标签 统计

wolfram-mathematica ×8

python ×2

emacs ×1

graph ×1

signals ×1