From 0107e083002fb17f62e491522aaa4115767d2fe1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?D=C3=B3ra=20Kocsis?= <dora@dynare.org>
Date: Mon, 16 Mar 2020 15:00:53 +0100
Subject: [PATCH] fix bug in sensitivity analysis: wrong initialization of
 options_gsa

---
 .../dynare_command_options_sensitivity.m      |  4 +--
 src/gui_sensitivity_analysis.m                | 36 ++++++++++++++-----
 2 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/src/+gui_auxiliary/dynare_command_options_sensitivity.m b/src/+gui_auxiliary/dynare_command_options_sensitivity.m
index b13c19d..691a17f 100644
--- a/src/+gui_auxiliary/dynare_command_options_sensitivity.m
+++ b/src/+gui_auxiliary/dynare_command_options_sensitivity.m
@@ -14,7 +14,7 @@ function dynare_command_options_sensitivity()
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2019 Dynare Team
+% Copyright (C) 2019-2020 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -92,7 +92,7 @@ dynare_gui_.sensitivity.sampling{num,4} = 'When pprior=0 and ppost=0, allows for
 %% Group 2: stability mapping
 num = 1;
 dynare_gui_.sensitivity.stability_mapping{num,1} = 'stab';
-dynare_gui_.sensitivity.stability_mapping{num,2} = 0;
+dynare_gui_.sensitivity.stability_mapping{num,2} = 1;
 dynare_gui_.sensitivity.stability_mapping{num,3} = 'check_option';
 dynare_gui_.sensitivity.stability_mapping{num,4} = 'If equal to 1, perform stability mapping. If equal to 0, do not perform stability mapping.';
 
diff --git a/src/gui_sensitivity_analysis.m b/src/gui_sensitivity_analysis.m
index 23a2b78..a703bbc 100644
--- a/src/gui_sensitivity_analysis.m
+++ b/src/gui_sensitivity_analysis.m
@@ -11,7 +11,7 @@ function gui_sensitivity_analysis(tabId)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2019 Dynare Team
+% Copyright (C) 2019-2020 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -68,20 +68,38 @@ handles.pushbuttonSensitivity = uicontrol( ...
         old_oo_ = oo_;
         old_options_ = options_;
         try
-            options_ = struct();
             if ~isempty(model_settings.sensitivity)
                 names = fieldnames(model_settings.sensitivity);
+                options_gsa = model_settings.sensitivity;
+                options_ = old_options_;
                 for ii = 1:size(names, 1)
-                    if isempty(model_settings.sensitivity.(names{ii}))
-                        gui_auxiliary.set_command_option(names{ii}, 1, 'check_option');
-                    else
-                        gui_auxiliary.set_command_option(names{ii}, model_settings.sensitivity.(names{ii}));
+                    switch names{ii}
+                        case 'namendo'
+                            if contains(options_gsa.(names{ii}), ',')
+                                namendo_ = strsplit(options_gsa.(names{ii}), ',');
+                                options_gsa.namendo = namendo_;
+                            else
+                                options_gsa.namendo = {options_gsa.(names{ii})};
+                            end
+                        case 'namlagendo'
+                            if contains(options_gsa.(names{ii}), ',')
+                                namlagendo_ = strsplit(options_gsa.(names{ii}), ',');
+                                options_gsa.namlagendo = namlagendo_;
+                            else
+                                options_gsa.namlagendo = {options_gsa.(names{ii})};
+                            end
+                        case 'namexo'
+                            if contains(options_gsa.(names{ii}), ',')
+                                namexo_ = strsplit(options_gsa.(names{ii}), ',');
+                                options_gsa.namexo = namexo_;
+                            else
+                                options_gsa.namexo = {options_gsa.(names{ii})};
+                            end
+                        case 'threshold_redform'
+                            options_gsa.threshold_redform = str2num(options_gsa.(names{ii}));
                     end
                 end
             end
-            options_gsa = options_;
-            options_ = old_options_;
-
             gui_tools.project_log_entry('Running stochastic sensitivity','...');
             [jObj, guiObj] = gui_tools.create_animated_screen('Running stochastic sensitivity, please wait...', tabId);
             handles.pushbuttonResults.Enable = 'off';
-- 
GitLab