我在mathematica中有一个列表(矩阵)列表。我想把它很好地打印出来,每一行的最大值都是粗体。该怎么做呢?
或者甚至更远,在这样的max之外有一个圆,这是可能的吗?
发布于 2011-02-11 14:32:31
您可以使用MatrixForm很好地打印矩阵:
data = RandomInteger[100, {5, 5}];
data // MatrixForm收益率

您可以在每行中的最大值周围绘制一个圆圈,如下所示:
Map[# /. m : Max[#] :> Framed[m, RoundingRadius -> 1000] &, data] //
MatrixForm让位

RoundingRadius -> 1000使用一个大得离谱的参数来获取圆。您可能需要根据显示器的大小调整常量。
如果你喜欢加粗,你可以用Style[m, Bold]修改Framed[m...]。
发布于 2011-02-11 19:36:39
栅格使您可以在显示外观上进行细粒度控制。例如:
g[a_] := Grid[a,
Background -> {None, {{LightBlue, LightRed}}},
Dividers -> {False, All},
ItemStyle -> {Automatic, Automatic,
MapIndexed[Flatten@{#2, Ordering[#1, -1]} -> {Bold, Red} &, a]}]
g[RandomInteger[100, {10, 7}]]

NB>它将每行只突出显示一个元素
编辑
要高亮显示每个max元素,可以执行以下操作:
g[a_] := Grid[a,
Background -> {None, {{LightBlue, LightRed}}},
Dividers -> {False, All},
ItemStyle -> {Automatic, Automatic,
Flatten[Tuples[{First@#, Last@#}] & /@
MapIndexed[{#2, Position[#1, Max[#1]]} &, a],
1] /. {q_, {r_}} -> ({q, r} -> {Red, Bold})}]

https://stackoverflow.com/questions/4966007
复制相似问题