class_docstr: Subclass of AffineTransform that is Linear as opposed to AffineTransform, i.e. the translation is 0.
  
  It is instantiated with an matrix of shape (ndim,ndim) instead of (ndim+1,ndim+1)
code: def __init__(self, function_domain, function_range, matrix):
      ndim = matrix.shape[0]
      T = np.identity(ndim + 1, dtype=matrix.dtype)
      T[:-1, :-1] = matrix
      AffineTransform.__init__(self, function_domain, function_range, T)
  
imports: import numpy
  from nipy.core.api import AffineTransform, CoordinateSystem
  from nipy.core.reference.coordinate_map import compose
  from nipy.core.reference.coordinate_map import product
label_desc: Use image node_id 2 to create a new Linear object from inherited base classes: AffineTransform with example: obj = Linear(function_domain, function_range, matrix)