From 7e85f512b0945894b923ca58501d15cae1df2324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3ra=20Kocsis?= <dora@dynare.org> Date: Fri, 20 Mar 2020 17:26:32 +0100 Subject: [PATCH] implement exceptions for dataset_dimensions --- src/fetch_series_by_api_link.m | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/fetch_series_by_api_link.m b/src/fetch_series_by_api_link.m index d1da92a..cb3116e 100644 --- a/src/fetch_series_by_api_link.m +++ b/src/fetch_series_by_api_link.m @@ -67,7 +67,19 @@ else dimension_label = dataset_dimensions_labels.(dimension_codes{jj}); flat_series.labels{jj, 1} = dimension_label; dimension_value_code = regexprep(series_dims_by_dataset_code.(complete_dataset_code).(series_code).(dimension_codes{jj}),'[^a-zA-Z0-9]','_'); - flat_series.labels{jj, 2} = dataset_dimensions.dimensions_values_labels.(dimension_codes{jj}).(dimension_value_code); + if isstrprop(dimension_value_code(1), 'digit') %MATLAB doesn't allow struct fieldnames to start with a digit + dimension_value_code = ['x' dimension_value_code]; + end + try + flat_series.labels{jj, 2} = dataset_dimensions.dimensions_values_labels.(dimension_codes{jj}).(dimension_value_code); + catch + for it = 1:size(dataset_dimensions.dimensions_values_labels.(dimension_codes{jj}), 1) + tmp = regexprep(dataset_dimensions.dimensions_values_labels.(dimension_codes{jj}){it}{1}, '[^a-zA-Z0-9]', '_'); + if strcmp(tmp, dimension_value_code) + flat_series.labels{jj, 2} = dataset_dimensions.dimensions_values_labels.(dimension_codes{jj}){it}{2}; + end + end + end end end % Create final cell array -- GitLab