generates a list of n copies of expr.


generates a list of the values of expr when i runs from 1 to imax.


starts with i=imin.


uses steps di.


uses the successive values i1, i2, .


gives a nested list. The list associated with i is outermost. »


  • You can use Table to build up vectors, matrices, tensors, and other arrays.
  • Table uses the standard Wolfram Language iteration specification.
  • Table evaluates its arguments in a nonstandard way.
  • Table[expr,spec] first evaluates spec, then localizes the variable specified and successively assigns values to it, each time evaluating expr.
  • Table effectively uses Block to localize values or variables.
  • Table[expr,spec1,spec2] is effectively equivalent to Table[Table[expr,spec2],spec1].
  • Parallelize[Table[expr,iter]] or ParallelTable[expr,iter] computes Table[expr,iter] in parallel on all subkernels. »


open allclose all

Basic Examples  (6)

A table of the first 10 squares:

A table with running from 0 to 20 in steps of 2:

A list of 10 's:

Make a 4×3 matrix:

Plot a table:

Arrange a table in a column:

Scope  (6)

The index in the table can run backward:

Make a triangular array:

Make a 3×2×4 array, or tensor:

Iterate over an existing list:

Make an array from existing lists:

Table evaluates the expression separately each time:

Generalizations & Extensions  (3)

The table index can have symbolic values:

The variables need not just be symbols:

ParallelTable computes Table in parallel:

Table can be parallelized automatically, effectively using ParallelTable:

Applications  (4)

Make a table of graphics:

Generate the corners of a polygon:

Make Pascal's triangle:

Compare font sizes from 10 points to 20 points:

Properties & Relations  (13)

Display of Tables  (5)

Use ListPlot, ListLinePlot and similar functions to visualize numeric tables:

Use Grid to format a two-dimensional table:

Two-dimensional numeric tables can be visualized with ArrayPlot and MatrixPlot:

Print the values of the table index while the table is being generated:

Monitor the values by showing them in a temporary cell:

Relations to Other Functions  (5)

Range gives the sequence of values of a table iterator:

Do evaluates the same sequence of expressions as Table, but does not return them:

Sum effectively applies Plus to results from Table:

Array iterates over successive integers:

Map applies a function to successive elements in a list:

Table can substitute successive elements in a list into an expression:

Nested Tables  (1)

Using multiple iteration specifications is equivalent to nesting Table functions:

Programmatic Table Construction  (2)

Feed in parameters for tables:

Use Apply to splice a complete iterator specification into Table:

With can insert the specification for a single iterator:

Possible Issues  (6)

For some step sizes, output from Table may not include the upper limit given:

Table requires list iterator specifications to be given explicitly:

Forcing early evaluation of the list resolves the issue:

Alternatively, using With to lexically replace p with its list form:

Table normally reevaluates at each step:

The Evaluate is needed to force evaluation of the table before it is fed to Plot:

Compare with:

Values of Table variables do not get substituted inside held expressions:

Use With to insert values:

Formatting wrappers such as Grid give expressions that are no longer lists:

Wolfram Research (1988), Table, Wolfram Language function, (updated 2015).


Wolfram Research (1988), Table, Wolfram Language function, (updated 2015).


Wolfram Language. 1988. "Table." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2015.


Wolfram Language. (1988). Table. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_table, author="Wolfram Research", title="{Table}", year="2015", howpublished="\url{}", note=[Accessed: 13-July-2024 ]}


@online{reference.wolfram_2024_table, organization={Wolfram Research}, title={Table}, year={2015}, url={}, note=[Accessed: 13-July-2024 ]}