@classmethod
def from_files(cls, A_file, B_file, C_file, D_file=None, E_file=None,
    cont_time=True, state_id='STATE', solver_options=None, estimator=None,
    visualizer=None, cache_region='memory', name=None):
    """Create |LTIModel| from matrices stored in separate files.

        Parameters
        ----------
        A_file
            The name of the file (with extension) containing A.
        B_file
            The name of the file (with extension) containing B.
        C_file
            The name of the file (with extension) containing C.
        D_file
            `None` or the name of the file (with extension) containing D.
        E_file
            `None` or the name of the file (with extension) containing E.
        cont_time
            `True` if the system is continuous-time, otherwise `False`.
        state_id
            Id of the state space.
        solver_options
            The solver options to use to solve the Lyapunov equations.
        estimator
            An error estimator for the problem. This can be any object with an
            `estimate(U, mu, model)` method. If `estimator` is not `None`, an `estimate(U, mu)`
            method is added to the model which will call `estimator.estimate(U, mu, self)`.
        visualizer
            A visualizer for the problem. This can be any object with a `visualize(U, model, ...)`
            method. If `visualizer` is not `None`, a `visualize(U, *args, **kwargs)` method is added
            to the model which forwards its arguments to the visualizer's `visualize` method.
        cache_region
            `None` or name of the cache region to use. See :mod:`pymor.core.cache`.
        name
            Name of the system.

        Returns
        -------
        lti
            The |LTIModel| with operators A, B, C, D, and E.
        """
    from pymor.tools.io import load_matrix
    A = load_matrix(A_file)
    B = load_matrix(B_file)
    C = load_matrix(C_file)
    D = load_matrix(D_file) if D_file is not None else None
    E = load_matrix(E_file) if E_file is not None else None
    return cls.from_matrices(A, B, C, D, E, cont_time=cont_time, state_id=
        state_id, solver_options=solver_options, estimator=estimator,
        visualizer=visualizer, cache_region=cache_region, name=name)
