Skip to content

Subclassing MDD and MDDAxis

Erik A. Roberts edited this page Jun 6, 2017 · 1 revision

To subclass MDD you can use this minimal template:

classdef mySubclass < MDD
  % mySubclass class inherets from the MDD class
  
  properties (Access = private)
    data_pr        % Storing the actual data (multi-dimensional matrix or cell array)
    axis_pr        % 1xNdims - array of MDDAxis classes for each axis. Ndims = ndims(data)
    axisClass = MDDAxis
  end
  
  methods (Static)
      % ** start Import Methods **
      %   Note: these can be called as static (ie class) methods using
      %   uppercase version or as object methods using lowercase version
      function obj = ImportDataTable(varargin)    % Function for importing data in a 2D table format
        % instantiate object
        obj = mySubclass();
        
        % call object method
        obj = importDataTable(obj, varargin{:});
      end
      
      function obj = ImportData(varargin)
        % instantiate object
        obj = mySubclass();
        
        % call object method
        obj = importData(obj, varargin{:});
      end
      
      function obj = ImportFile(varargin) % import linear data from data file (using importDataTable method)
        % instantiate object
        obj = mySubclass();
        
        % call object method
        obj = importFile(obj, varargin{:});
      end
      % ** end Import Methods **
    end

end

To subclass MDDAxis, use this template:

classdef myAxisSubclass < MDDAxis
end

To add myAxisSubclass to an MDD object: obj = MDD(axisSubclass) or obj = MDD(axisSubclass, MDD_args)

To add myAxisSubclass to an MDD subclass object:

classdef mySubclass < MDD
  % mySubclass class inherets from the MDD class
  
  properties (Access = private)
    data_pr        % Storing the actual data (multi-dimensional matrix or cell array)
    axis_pr        % 1xNdims - array of myAxisSubclass classes for each axis. Ndims = ndims(data)
    axisClass = axisSubclass
  end
  
  methods (Static)
    % Same as above
  end

end
Clone this wiki locally