%% Multidimensional Dictionary - Simple Demo
% File demonstrating some the basic capabilities of MDD. For full
% instructions on using MDD, see tutorial_MDD.m

%% Construct MDD object
% Enter some stock prices and create an MDD object

% Add MDD toolbox to Matlab path if needed
if ~exist('MDD','class')
  addpath(genpath(pwd));
end

% Some stock prices
stocks_data = [120.1, 175.3, 191.3;
    62.6, 90.3, 117.2;
    82.2 ,78.4 , 56.4;
    68.3,100.1, 98.2];

% Create mdd object
axis_labels= {{'Tech_Apple','Tech_Microsoft','Retail_CVS','Retail_Walmart'},2017:2019};
mdd = MDD(stocks_data,axis_labels);


%%%
% This creates the following object:

% mdd = 
%                         2017         2018         2019  
% --------------------------------------------------------
% 'Tech_Apple'        |    120.1       175.3       191.3
% 'Tech_Microsoft'    |     62.6        90.3       117.2
% 'Retail_CVS'        |     82.2        78.4        56.4
% 'Retail_Walmart'    |     68.3       100.1        98.2


%% Indexing based on numerical query
mdd2 = mdd(:,'2017 < x < 2019');

%%%
% This returns the following:

% mdd2 = 
%                         2018  
% --------------------------------------------------------
% 'Tech_Apple'        |    175.3
% 'Tech_Microsoft'    |     90.3
% 'Retail_CVS'        |     78.4
% 'Retail_Walmart'    |    100.1


%% Indexing based on regular expression
mdd3 = mdd('Tech_',:);

%%%
% This returns the following:

% mdd3 = 
%                         2017         2018         2019  
% --------------------------------------------------------
% 'Tech_Apple'        |    120.1       175.3       191.3
% 'Tech_Microsoft'    |     62.6        90.3       117.2


%% Merging MDD objects
% The merge method allows mdd objects to be combined based on their axis
% labels.

% Merge mdd2 and mdd3
mdd_merged = merge(mdd2,mdd3,true);
mdd_merged.printAxisInfo
mdd_merged.data

%%%
% This returns the following:

% mdd_merged = 
%                         2017         2018         2019  
% --------------------------------------------------------
% 'Tech_Apple'        |  [120.1]     [175.3]       [191.3]
% 'Tech_Microsoft'    |   [62.6]      [90.3]       [117.2]
% 'Retail_CVS'        |       []          []        [56.4]
% 'Retail_Walmart'    |       []          []        [98.2]