From 1f9e6dea8d07e08bd04a1fdac4e7de2409af39b1 Mon Sep 17 00:00:00 2001 From: Houtan Bastani <houtan@dynare.org> Date: Thu, 4 Apr 2013 10:57:31 +0200 Subject: [PATCH] add strjoin to missing --- license.txt | 5 +++++ matlab/dynare_config.m | 5 +++++ matlab/missing/strjoin/strjoin.m | 36 ++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 matlab/missing/strjoin/strjoin.m diff --git a/license.txt b/license.txt index 2ee4d605f..ce6356598 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 6d77c52fb..68d720f4a 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 000000000..f14f42d4f --- /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 -- GitLab