# Immutable Matrices¶

The standard `Matrix` class in SymPy is mutable. This is important for performance reasons but means that standard matrices cannot interact well with the rest of SymPy. This is because the `Basic` object, from which most SymPy classes inherit, is immutable.

The mission of the `ImmutableDenseMatrix` class, which is aliased as `ImmutableMatrix` for short, is to bridge the tension between performance/mutability and safety/immutability. Immutable matrices can do almost everything that normal matrices can do but they inherit from `Basic` and can thus interact more naturally with the rest of SymPy. `ImmutableMatrix` also inherits from `MatrixExpr`, allowing it to interact freely with SymPy’s Matrix Expression module.

You can turn any Matrix-like object into an `ImmutableMatrix` by calling the constructor

```>>> from sympy import Matrix, ImmutableMatrix
>>> M = Matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> M[1, 1] = 0
>>> IM = ImmutableMatrix(M)
>>> IM
Matrix([
[1, 2, 3],
[4, 0, 6],
[7, 8, 9]])
>>> IM[1, 1] = 5
Traceback (most recent call last):
...
TypeError: Can not set values in Immutable Matrix. Use Matrix instead.
```

## ImmutableMatrix Class Reference¶

sympy.matrices.immutable.ImmutableMatrix[source]

alias of `ImmutableDenseMatrix`

class sympy.matrices.immutable.ImmutableDenseMatrix(*args, **kwargs)[source]

Create an immutable version of a matrix.

Examples

```>>> from sympy import eye, ImmutableMatrix
>>> ImmutableMatrix(eye(3))
Matrix([
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
>>> _[0, 0] = 42
Traceback (most recent call last):
...
TypeError: Cannot set values of ImmutableDenseMatrix
```