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: RevoluteMDH.m
    path of file: ./repos/robotics-toolbox-matlab
    
    the code of the file until where you have to start completion: %RevoluteMDH Robot manipulator Revolute link class for MDH convention
%
% A subclass of the Link class for a revolute joint defined using modified
% Denavit-Hartenberg parameters: holds all information related to a
% revolute robot link such as kinematics parameters, rigid-body inertial
% parameters, motor and transmission parameters.
%
% Constructors::
%  RevoluteMDH    construct a revolute joint+link using modified DH
%
% Information/display methods::
%  display       print the link parameters in human readable form
%  dyn           display link dynamic parameters
%  type          joint type: 'R' or 'P'
%
% Conversion methods::
%  char          convert to string
%
% Operation methods::
%  A             link transform matrix
%  friction      friction force
%  nofriction    Link object with friction parameters set to zero%
%
% Testing methods::
%  islimit       test if joint exceeds soft limit
%  isrevolute    test if joint is revolute
%  isprismatic   test if joint is prismatic
%  issym         test if joint+lin
    
function L = RevoluteMDH(varargin)
            %RevoluteMDH.RevoluteMDH Create revolute robot link object using MDH notation
            %
            % L = RevoluteMDH(OPTIONS) is a revolute link object with the kinematic and dynamic
            % parameters specified by the key/value pairs using the modified
            % Denavit-Hartenberg conventions.
            %
            % Options::
            % 'd',D         joint extension
            % 'a',A         joint offset (default 0)
            % 'alpha',A     joint twist (default 0)
            % 'standard'    defined using standard D&H parameters (default).
            % 'modified'    defined using modified D&H parameters.
            % 'offset',O    joint variable offset (default 0)
            % 'qlim',L      joint limit (default [])
            % 'I',I         link inertia matrix (3x1, 6x1 or 3x3)
            % 'r',R         link centre of gravity (3x1)
            % 'm',M         link mass (1x1)
            % 'G',G         motor gear ratio (default 1)
            % 'B',B         joint friction, motor referenced (default 0)
            % 'Jm',J        motor inertia, motor referenced (default 0)
            % 'Tc',T        Coulomb friction, motor referenced (1x1 or 2x1), (default [0 0])
            % 'sym'         consider all parameter values as symbolic not numeric
            %
            % Notes::
            % - The joint angle, theta, is provided as an argument to the A() method.
            % - The link inertia matrix (3x3) is symmetric and can be specified by giving
            %   a 3x3 matrix, the diagonal elements [Ixx Iyy Izz], or the moments and products
            %   of inertia [Ixx Iyy Izz Ixy Iyz Ixz].
            % - All friction quantities are referenced to the motor not the load.
            % - Gear ratio is used only to convert motor referenced quantities such as
            %   friction and interia to the link frame.
            %
            % See also Link, Prismatic, RevoluteMDH.
            L = L@Link('revolute', varargin{:});
            
            if nargin == 0
                L.theta = [];
            end