Multidimensional Dictionary - Simple Demo
File demonstrating some the basic capabilities of MDD. For full instructions on using MDD, see tutorial_MDD.m
Contents
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]
Axis Size: [4 3] Axis 1: Dim 1 (cellstr) -> Tech_Apple, Tech_Microsoft, Retail_CVS, Retail_Walmart Axis 2: Dim 2 (numeric) -> 2017, 2018, 2019 ans = 4×3 cell array {[ 120.1]} {[175.3]} {[ 191.3]} {[ 62.6]} {[ 90.3]} {[ 117.2]} {0×0 double} {[ 78.4]} {0×0 double} {0×0 double} {[100.1]} {0×0 double}