# matrixFromFunction() Function & Examples

Use the matrixFromFunction() matrix function in Calcul.io. Review its syntax, edit working examples, understand the result, and explore related math functions.

## matrixFromFunction

#### matrixFromFunction(size, fn)

#### matrixFromFunction(size, fn, format)

#### matrixFromFunction(size, fn, format, datatype)

#### matrixFromFunction(size, format, fn)

#### matrixFromFunction(size, format, datatype, fn)

Try it yourself:

```calculio
f(I) = I[1] - I[2]
matrixFromFunction([3,3], f)
g(I) = I[1] - I[2] == 1 ? 4 : 0
matrixFromFunction([100, 100], "sparse", g)
matrixFromFunction([5], random)
```

[zeros](https://calcul.io/function/zeros/index.md)

---

## Generate matrix entries with matrixFromFunction

**matrixFromFunction** creates a matrix by evaluating a callback for each row and column index. It is a concise way to define patterned matrices without manually typing every entry.

## Useful patterns

Create a multiplication table, a coordinate grid, or a diagonal condition based on row and column indices. For an identity pattern, [identity](https://calcul.io/function/identity/index.md) is simpler; [zeros](https://calcul.io/function/zeros/index.md) and [ones](https://calcul.io/function/ones/index.md) cover uniform matrices.

## Inputs and validation

Dimensions should be non-negative integers and the callback must return values appropriate for every requested index. Confirm the output with [size](https://calcul.io/function/size/index.md), and use [map](https://calcul.io/function/map/index.md) to transform an already-existing collection instead of generating a new one.

[All functions](https://calcul.io/functions/index.md)
