<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _bind_method(self, name, unconditionally=False):
 """Generate a Matlab function and bind it to the instance This is where the magic happens. When an unknown attribute of the Matlab class is requested, it is assumed to be a call to a Matlab function, and is generated and bound to the instance. This works because getattr() falls back to __getattr__ only if no attributes of the requested name can be found through normal routes (__getattribute__, __dict__, class tree). bind_method first checks whether the requested name is a callable Matlab function before generating a binding. Parameters name : str The name of the Matlab function to call e.g. 'sqrt', 'sum', 'svd', etc unconditionally : bool, optional Bind the method without performing checks. Used to bootstrap methods that are required and know to exist Returns ------- MatlabFunction A reference to a newly bound MatlabFunction instance if the requested name is determined to be a callable function Raises ------ AttributeError: if the requested name is not a callable Matlab function """

        # TODO: This does not work if the function is a mex function inside a folder of the same name
        exists = self.run_func('exist', name)['result'] in [2, 3, 5]
        if not unconditionally and not exists:
            raise AttributeError("'Matlab' object has no attribute '%s'" % name)

        # create a new method instance
        method_instance = MatlabFunction(weakref.ref(self), name)
        method_instance.__name__ = name

        # bind to the Matlab instance with a weakref (to avoid circular references)
        if sys.version.startswith('3'):
            method = types.MethodType(method_instance, weakref.ref(self))
        else:
            method = types.MethodType(method_instance, weakref.ref(self),
                                      _Session)
        setattr(self, name, method)
        return getattr(self, name)