You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: mt_diffuse.m
    path of file: ./repos/scGEAToolbox/+run
    
    the code of the file until where you have to start completion: function [C, eigenvals] = mt_diffuse(X, plotit)
%Outputs:
%  C    
    
function [X, eigenvals, psi, phi] = diffuse(D,eps_val,neigen,t)
%
% Input:
%       D          --- pairwise distances, n-by-n matrix
%       eps_val    --- parameter in weight matrix exp(-D^2/(4*eps_val))
%       neigen     --- number of dimensions of final representation
%                       (default: 95% drop-off in eigenvalue multiplier)
%       t          --- optional time parameter in diffusion map
%                       (default: model with multiscale geometry)
%
% Output:
%       X          --- non-trivial diffusion coords. (entered column-wise)
%       eigenvals  --- eigenvalues of Markov matrix
%       psi        --- right eigenvectors of Markov matrix
%       phi        --- left eigenvectors
%
%  Ann B Lee, March 2009. Last modified, JWR: 3/23/2009

if (nargin < 3), neigen = []; end