diff --git a/matlab/get_equation_name_by_number.m b/matlab/get_equation_name_by_number.m index 11f988847..b82963a3c 100644 --- a/matlab/get_equation_name_by_number.m +++ b/matlab/get_equation_name_by_number.m @@ -18,11 +18,13 @@ function eqname = get_equation_name_by_number(eqnumber, M_) % You should have received a copy of the GNU General Public License % along with Dynare. If not, see . -idx_for_this_eq = find(cell2mat(M_.equations_tags(:,1)) == eqnumber); -eqname = cell2mat(M_.equations_tags(idx_for_this_eq(strmatch('name', M_.equations_tags(idx_for_this_eq, 2), 'exact')), 3)); +idx = find((cell2mat(M_.equations_tags(:,1)) == eqnumber) & ... + strcmp(M_.equations_tags(:,2), 'name')); -if isempty(eqname) +if isempty(idx) eqname = ''; +else + eqname = M_.equations_tags{idx, 3}; end end diff --git a/matlab/get_equation_number_by_tag.m b/matlab/get_equation_number_by_tag.m index 8e1a404a6..e2e3e0ef1 100644 --- a/matlab/get_equation_number_by_tag.m +++ b/matlab/get_equation_number_by_tag.m @@ -1,4 +1,4 @@ -function eqnumber = get_equation_number_by_tag(eqname, DynareModel) +function eqnumber = get_equation_number_by_tag(eqname, M_) % Translates an equation name into an equation number. % @@ -9,7 +9,7 @@ function eqnumber = get_equation_number_by_tag(eqname, DynareModel) % OUTPUTS % - eqnumber [integer] Equation number. -% Copyright © 2018-2020 Dynare Team +% Copyright © 2018-2022 Dynare Team % % This file is part of Dynare. % @@ -26,6 +26,13 @@ function eqnumber = get_equation_number_by_tag(eqname, DynareModel) % You should have received a copy of the GNU General Public License % along with Dynare. If not, see . -eqnumber = strmatch(eqname, DynareModel.equations_tags(strmatch('name', DynareModel.equations_tags(:,2), 'exact'), 3), 'exact'); +idx = find(strcmp(M_.equations_tags(:,2), 'name') & ... + strcmp(M_.equations_tags(:,3), eqname)); -if isempty(eqnumber), eqnumber = 0; end \ No newline at end of file +if isempty(idx) + eqnumber = 0; +else + eqnumber = M_.equations_tags{idx, 1}; +end + +end