Wolfram mathematica 创建节点为集合的图形对象

Wolfram mathematica 创建节点为集合的图形对象,wolfram-mathematica,Wolfram Mathematica,这个问题涉及Mathematica 8中的图形对象,当节点是集合而不是数字或规范符号时 问题 我尝试做的只是以下几点。我有一套。因此,考虑以下内容: S = {{1}, {2}, {1,2}, {2,3}} (* Set of vertices *) E = {{{1}, {2}}, {{2}, {1,2}}, {{{1,2}, {2,3}}, {{2,3}, {1}}} (* Edges *) Graph[S, E] 不幸的是,当我执行以下操作时: S = {{1}, {2}, {1,2}

这个问题涉及Mathematica 8中的图形对象,当节点是集合而不是数字或规范符号时

问题 我尝试做的只是以下几点。我有一套。因此,考虑以下内容:

S = {{1}, {2}, {1,2}, {2,3}} (* Set of vertices *)
E = {{{1}, {2}}, {{2}, {1,2}}, {{{1,2}, {2,3}}, {{2,3}, {1}}} (* Edges *)
Graph[S, E]
不幸的是,当我执行以下操作时:

S = {{1}, {2}, {1,2}, {2,3}} (* Set of vertices *)
E = {{{1}, {2}}, {{2}, {1,2}}, {{{1,2}, {2,3}}, {{2,3}, {1}}} (* Edges *)
Graph[S, E]
Mathematica不创建graph对象,也无法理解我创建具有这些集合的节点的图形的意图

问题 我能做些什么来达到这个结果?为了让Mathematica了解如何创建连接,我考虑了一些替换,在创建图形后,我可以使用反转标记顶点。但我不知道怎么弄到这个

审判 我尝试使用替换规则和运算符,但主要困难是操作任意长度数组的替换。我来解释一下

考虑有一个像S这样的列表的通用列表,我可以用{1,2,3}->123或{2,3}->23这样的字符串替换它

问题是替换运算符/。不提供以我想要的方式指定列表的语法


谢谢

您永远不想在变量名中使用大写字母,尤其是E是邪恶的,因为它是欧拉数。此外,我认为你已经在你的括号中键入了E

如果我理解正确,那么您唯一要做的就是,从您的E列表中进行DirectedEdge:


您永远不希望在变量名中使用大写字母,尤其是E是邪恶的,因为它是euler数。此外,我认为你已经在你的括号中键入了E

如果我理解正确,那么您唯一要做的就是,从您的E列表中进行DirectedEdge:


这可以说是@halirutan方法的一个更具可读性的版本:

a = {1}; b = {2}; c = {1, 2}; d = {2, 3}

Graph[{a -> b, b -> c, c -> d, d -> a}, VertexLabels -> "Name", 
      ImagePadding -> 10]

因为它是一个连通图,所以不需要在图中包含顶点列表;边缘列表就足够了。

这可以说是@halirutan方法的更具可读性的版本:

a = {1}; b = {2}; c = {1, 2}; d = {2, 3}

Graph[{a -> b, b -> c, c -> d, d -> a}, VertexLabels -> "Name", 
      ImagePadding -> 10]
因为它是一个连通图,所以不需要在图中包含顶点列表;边缘列表就足够了。

让我来说明一下:

考虑有一个像S这样的通用列表。我没有 用类似{1,2,3}->123或 {2,3}->23

问题是替换运算符/。不提供语法 用于以我想要的方式指定列表

首先是:

lists = {{{2}, {1, 2}}, {{1, 2}, {2, 3}}, {{1, 2, 3}, {1}}};
以下是几个选项:

lists /. x : {__Integer} :> StringJoin@Riffle[ToString /@ x, "-"]
让我谈谈这个问题:

考虑有一个像S这样的通用列表。我没有 用类似{1,2,3}->123或 {2,3}->23

问题是替换运算符/。不提供语法 用于以我想要的方式指定列表

首先是:

lists = {{{2}, {1, 2}}, {{1, 2}, {2, 3}}, {{1, 2, 3}, {1}}};
以下是几个选项:

lists /. x : {__Integer} :> StringJoin@Riffle[ToString /@ x, "-"]
{{"2", "12"}, {"12", "23"}, {"123", "1"}}