【问题标题】:How do I flip the orientation of a grid?如何翻转网格的方向?
【发布时间】:2011-06-24 17:49:10
【问题描述】:

我只是在做一个简单的Grid[datasymbolgoeshere, Frame->All] 命令。它获取一个 ID 号列表(例如,{11282,11281,11280})并将每个 ID 号放在自己的列中。我只想翻转方向,以便将单个列表中的所有字符串放在同一列中(单独的行,一个在另一个之上),并且下一个字符串列表位于第二列。

【问题讨论】:

  • 如果你举个例子说明 datasymbolgoeshere 中的内容,提供答案会更容易!

标签: rotation wolfram-mathematica


【解决方案1】:

听起来像你想要的

Grid[Transpose[datasymbolgoeshere],Frame->All]

编辑——顺便说一下Grid 假设一个多维列表。如果您打电话,它不会抱怨,例如Grid[{1,2}],但 Mma 无法简化该表达式并按原样返回它。 Grid 可以处理参差不齐的数组,但 Transpose 会报错,因此您需要填充 datasymbolgoeshere 的元素以使您的数组成为矩形。

把它们放在一起,这样的东西应该适用于大多数输入

With[ { maxLength=Length/@data//Max }, PadRight[#,maxLength,""]&/@data//Grid[#,Frame->All]& ]

【讨论】:

  • 记住Flatten 可以对参差不齐的数组进行转置可能也很有用。 (参见Flatten 帮助中“应用程序”下的示例)。例如Grid[Flatten[{{11282, 11281, 11280}, {12282, 12281, 12280}, {13282, 13281}}, {{2}, {1}}]]。请参阅here 进行讨论。我从来没有完全理解这一点。 (在给出的示例中转置将不起作用)。
【解决方案2】:

Rotate[Grid[datasymbolgoeshere, Frame->All],90 Degree]

我喜欢内容仍然可以选择。

【讨论】:

  • ...如果您希望角色直立,您也可以将它们旋转回来:Rotate[Grid[Map[Rotate[#, -90 Degree] &, dalist, {-1}], Frame -> All], 90 Degree]
  • @Sjoerd 我会使用{2} 而不是{-1} 作为级别规范,否则当您的数据不是原子时,事情会变得有趣,例如Array[Sin[# #2] &, {5, 5}]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 2020-02-07
  • 2016-02-01
  • 2017-01-15
  • 2020-10-29
  • 1970-01-01
相关资源
最近更新 更多