5
$\begingroup$

I have

m = {{0, -1, -2, -3, -4}, {1, 0, -1, -2, -3}, {2, 1, 0, -1, -2}, {3, 
    2, 1, 0, -1}, {4, 3, 2, 1, 0}};

And a grid Grid[m,Frame->All]

I would like to label the grid such that every column has a number above it and every row has a number to its side. This is what I've currently managed to do.

Labeled[Grid[m,Frame->All],{Y:{1,5},X:{1,5}},{Left,Top}] 

How can I label the grid appropriately?

$\endgroup$
  • $\begingroup$ I highly recomment this answer by Mike Honeychurch but if you do not need such interface take a look at Headings option for TableForm. You can allways add such heading as a new column and row, then you have to read adding columns/rows. $\endgroup$ – Kuba May 2 '14 at 8:32
7
$\begingroup$

Perhaps what you want:

m = Array[Subtract, {5, 5}, 0];
r = Range @ 5;

Grid[
 ArrayFlatten[{{"", {r}}, {{r}\[Transpose], m}}],
 Frame -> All
]

enter image description here

$\endgroup$
  • $\begingroup$ Exactly what I was looking for. +1 For simplicity. $\endgroup$ – pyler May 2 '14 at 10:19
7
$\begingroup$

You could use TableForm, e.g.

col = CharacterRange["A", "E"];
row = CharacterRange["a", "e"];
TableForm[m, TableHeadings -> {row, col}]

A way using Grid:

Grid[{PadLeft[col, 6, ""]}~Join~
  MapThread[PadLeft[#1, 6, #2] &, {m, row}], 
 Dividers -> {{False, True, {False}}, {False, True, {False}}}]

enter image description here

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.