diff --git a/license.txt b/license.txt index 2ee4d605fd280d52bfa81fcc833c1d0b789438c2..ce635659846e90ae1f76228dba801c9945dbea05 100644 --- a/license.txt +++ b/license.txt @@ -68,6 +68,11 @@ Files: matlab/missing/bicgstab/bicgstab.m Copyright: 2008 Radek Salac License: GPL-3+ +Files: matlab/missing/strjoin/strjoin.m +Copyright: 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu> + 2013 Dynare Team +License: GPL-3+ + Files: doc/dynare.texi doc/*.tex doc/*.svg doc/*.dia doc/*.pdf doc/*.bib Copyright: 1996-2013 Dynare Team License: GFDL-NIV-1.3+ diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m index 6d77c52fbea8320348796ad6db307000b3e4490e..68d720f4a9c17180c81d38b88ee2c7e7da60abd7 100644 --- a/matlab/dynare_config.m +++ b/matlab/dynare_config.m @@ -94,6 +94,11 @@ if exist('OCTAVE_VERSION') || matlab_ver_less_than('7.4') addpath([dynareroot '/missing/ilu']) end +% strjoin is missing in older versions of MATLAB and in Octave +if exist('OCTAVE_VERSION') || matlab_ver_less_than('8.1') + addpath([dynareroot '/missing/strjoin']) +end + % nanmean is in Octave Forge Statistics package and in MATLAB Statistics % toolbox if (exist('OCTAVE_VERSION') && ~user_has_octave_forge_package('statistics')) ... diff --git a/matlab/missing/strjoin/strjoin.m b/matlab/missing/strjoin/strjoin.m new file mode 100644 index 0000000000000000000000000000000000000000..f14f42d4fa4d0b226e8673539c8683a25411c0da --- /dev/null +++ b/matlab/missing/strjoin/strjoin.m @@ -0,0 +1,36 @@ +function rval = strjoin (c, varargin) +%function rval = strjoin (c, varargin) + +% Copyright (C) 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu> +% Copyright (C) 2013 Dynare Team +% +% This file is part of Dynare. +% +% Dynare is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% Dynare is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with Dynare. If not, see <http://www.gnu.org/licenses/>. + +assert(iscellstr(c), 'strjoin: first argument is a cell array of strings'); +assert(nargin <= 2, 'strjoin: takes one or two arguments'); +delimiter = ' '; +if nargin == 2 + delimiter = varargin{1}; + assert(ischar(delimiter), 'strjoin: second argument must be a char'); +end + +rval = ''; +L = length(c); +for idx = 1:(L-1) + rval = [rval c{idx} delimiter]; +end +rval = [rval c{L}]; +end