Wolfram mathematica 在mathematica中如何在矩阵中以图形方式跟踪路径

Wolfram mathematica 在mathematica中如何在矩阵中以图形方式跟踪路径,wolfram-mathematica,Wolfram Mathematica,我有一个矩阵,也就是一个不参差不齐的列表,并且给定一个坐标列表,例如以{0,0},{1,1},{2,2},{5,5}}的形式,我想在该矩阵中跟踪路径并以图形方式显示结果。路径上的彩色带就足够了 请帮我用Mathematica写这样一个函数。非常感谢 这里有一种可能性 pos = {{1, 1}, {1, 2}, {2, 2}, {3, 3}, {3, 4}, {3, 5}, {4, 5}, {5, 5}}; mat = HankelMatrix[8]; display = Map[Pane[

我有一个矩阵,也就是一个不参差不齐的列表,并且给定一个坐标列表,例如以
{0,0},{1,1},{2,2},{5,5}}
的形式,我想在该矩阵中跟踪路径并以图形方式显示结果。路径上的彩色带就足够了


请帮我用Mathematica写这样一个函数。非常感谢

这里有一种可能性

pos = {{1, 1}, {1, 2}, {2, 2}, {3, 3},
  {3, 4}, {3, 5}, {4, 5}, {5, 5}};
mat = HankelMatrix[8];
display = Map[Pane[#,{16,20},Alignment->Center]&, mat, {2}];
display = MapAt[Style[#, Background -> Yellow]&, display, pos];
Grid[display, Spacings->{0,0}]

正如您所描述的,用管状体勾勒条目的轮廓更难。不过,如果我们愿意转向图形原语,这是可以做到的

mat = IdentityMatrix[8];
pos = {{1, 1}, {1, 2}, {2, 2}, {3, 3},
  {3, 4}, {3, 5}, {4, 5}, {5, 5}};
pos = Map[{#[[1]], -#[[2]]} &, pos];
outline = {CapForm["Round"], JoinForm["Round"],
  {AbsoluteThickness[30], Line[pos]},
  {AbsoluteThickness[28], White, Line[pos]}};
disks = Table[{Darker[Yellow, 0.07], Disk[p, 0.25]}, 
  {p, pos}];
numbers = MapIndexed[Style[Text[#, {#2[[1]], -#2[[2]]}, 
  {-0.2, 0.2}], FontSize -> 12] &, mat, {2}];
Graphics[{outline, disks, numbers}, ImageSize -> 300]

我可能误解了这个问题,但这正是我认为你要问的:

coords = Join @@ Array[List, {3, 4}]
{{1, 1}, {1, 2}, {1, 3}, {1, 4}, {2, 1}, {2, 2}, {2, 3}, {2, 4}, {3, 
  1}, {3, 2}, {3, 3}, {3, 4}}

path = RandomSample[coords, Length[coords]]
{{1, 2}, {3, 3}, {2, 2}, {2, 4}, {3, 1}, {1, 4}, {1, 3}, {2, 1}, {3, 
  4}, {3, 2}, {2, 3}, {1, 1}}

labels = Text[StyleForm[#], #] & /@ coords;


Graphics[Line[path], Epilog -> labels]

另一种可能性,使用
ItemStyle

m = RandomInteger[10, {10, 10}];
c = {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {5, 6}, {5, 7}, {4, 8}};
Grid[m, ItemStyle -> {Automatic, Automatic, Table[i -> {16, Red}, {i, c}]}]
结果是这样的:


+1;看来我迟到了18分钟,还有一个更难看的解决方案!(我完全忘记了
MapAt
)…+1。看起来很棒。我只是想知道我是否有
pos={{1,1},{1,2},{2,2},{2,3},{3,3},{3,4},{3,5},{4,5},{5,5},{5,4},{5,3};网格[MapAt[Style[Pane[#,{16,20},Alignment->Center],Background->Yellow]&,IdentityMatrix[10],pos],Spacings->{0,0}]
我得到了非常不整洁的图形,因为间距混乱。如何修复它?还有,是否可以使用管状(或盒状)物体来表示该路径?我的意思是,只画黄色区域的轮廓(如
EdgeForm
),或者保留颜色,但用黑色粗线显示区域的轮廓。@littleEinstein您的图形不整洁,因为
Style
指令没有跨越矩阵。我们可以通过添加一个关于矩阵中每个元素的
窗格来修复此问题。另外,请看我的类似“tube”的示例。我不知道您是否知道,但我们需要在Stack Exchange网络中创建一个新的mathematica特定站点。请在Area51上创建一个帐户,并致力于该提案,以帮助其进入测试版。