如何生成带有标签列表的网格

How do I generate a grid with a list of lists with labels

我有一个列表列表,例如 {{1,3,c1},{2,3,c2},{66,4,c3}…} 我想用第一个做一个网格行是列表中的第一个元素,第一列是第二个元素,然后元素 c 位于它们对应的第一个和第二个元素之下。在 Mathematica 中有什么方法可以做到这一点吗?

有很多方法可以做到这一点。我只举一个经典的例子。

SparseArray函数可以读取这种规范并进行转换

tt={{1,3,c1},{2,3,c2},{7,4,c3}};

qq= SparseArray[Map[Most[#]->Last[#]&,tt]]

TableForm[qq, TableHeadings->{Range[Length[qq]],Range[Length[Transpose@qq]]}]

如果你想使用不同于整数的东西作为索引, 这也是可能的,但需要一种翻译。

如果你需要对你显示的稀疏数组进行稀疏显示 在使用 Mathematica 命令之前需要进行轻微的预处理,例如 作为表格或网格。

xss = {{1, 3, c1}, {2, 3, c2}, {10, 4, c3}}
toGrid[xss_] := xss // Map[Most@# -> Last@# &] // SparseArray[#] & // Grid
toGrid@xss