如何生成带有标签列表的网格
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
我有一个列表列表,例如 {{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